C数据结构
动态数据结构
程序执行过程中变化
- 链表(Linked List):“链成一行”的一组数据项——插入和删除可以发送在任意位置
- 堆栈(Stack):在编译器和操作系统中十分重要——插入和删除只能在堆栈的一端发生
- 队列(Queue):等待排队,插入只在队列后端(尾部Tail),删除只在队列前端(头部Head)
- 二元树(Binary):高速数据查找和排序。有效删除冗余数据项。
常见错误
- 结构体大小不一定等于成员大小之和,因为存在与机器相关的存储对其规则
- 使用malloc时一定要测试返回值是否为NULL
- 释放不是用malloc动态分配的内存空间,会产生错误
堆栈和列表
堆栈和队列实际上是链表的带限制版本
所有动态存储结构的基础:自引用结构体
Struct Node{
int Value;
Struct Node* NextNode;