线性表、栈、队列、单链队列、循环队列 内存分配介绍

来源:互联网 发布:java编写菱形图案 编辑:程序博客网 时间:2024/05/02 04:58

线性表:线性表有顺序表示和链式表示两种。

线性表的顺序表示:

因为顺序表是连续的存储地址,所以在初始化顺序线性表的时候就会分配好一个固定值的内存。如果在向线性表插值的过程中出现初始分配内存不足,则调用reallac重新分配内存,顺序表起始地址不变。所以在destroy的时候,只需要将顺序表的起始指针free掉就ok。

线性表的链式表示:

链表的内存分配方式与顺序表的不同,链表是在每次插入一个结点的时候分配一个节点的内存,所以每次delete一个元素的时候就要把这个元素的内存释放掉。

链表中必须有一个头指针!如果没有头指针,将不能知道链表存放在哪里,是从哪里开始的。有时候为了方便会为链表的第一个结点前加一个头结点,头结点中的数据部分可以不存储数据(初始值),而指针域必须指向下一个结点的位置。


线性表如果要查找第i个元素的数据的话,必须要从头指针出发寻找,因此,单链表是非随机存取的存储结构。

栈:

栈也可以用线性表是和链式表示。分配内存的方式与线性表的顺序表示和链式表示分配内存的方法类似。顺序表示:先分配好一定量的内存。而链式可以不用


0 0
原创粉丝点击