顺序表、单链表、双向循环链表

顺序表逻辑结构是线性的,物理结构一定是线性的,顺序表的底层是数组。

顺序表:分为动态顺序表和静态顺表

动态顺序表:数组长度是可以动态申请和扩容的 int*arr

静态顺序表: 底层为固定长度的数组 int arr[10]

Int*arr      存储数据的底层结构

Int capacity  顺序表的空间大小

Int size      顺序表的有效个数

单链表:由一个一个节点组成,节点由存储的数据和结构体指针组成。

struct SListNode

{

SLTDataType data;   

struct SListNode* next; 节点指针

};

双向循环链表:存储数据,前驱节点指针和后继节点指针。

struct ListNode

{

LTDataType data;  

struct ListNode* prev; 前驱节点指针

struct ListNode* next; 后继节点指针

}

双向链表中phead (哨兵位)不可能为空。

顺序表、单链表、双向循环链表注意学习增删查改。

指针的疑惑点

phead->(解引用) 修改的是值,不会影响phead的地址空间

LTNode* plist = node1;

plist->prev = xxx;改变的是plist的值,不是plist本身

plist->next = xxx;//改变的是plist的值,不是plist本身

plist = node2;//这才叫改变了plist

plist = malloc()//改变了plist

链表的优点:任意位置插入删除,按需申请空间。

缺点不支持下标访问。

顺序表的优点就是:尾插尾删效率不错。下标的随机访问。

缺点:插入删除数据需要挪动数据,空间不足需要扩容会造成扩容浪费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值