数据结构笔记

1.线性表是一个有限序列,可以为空

2.L是带表头结点单链表,删除首元结点的语句是L->next=L->next->next

3.链表表示线性表的优点是便于插入和删除

4.单链表中,增加一个头结点的目的是为了方便些一操作实现

5.循环链表的主要优点是从表中的任意结点出发都能扫描到整个链表

6.顺序储存的线性表,长度为n,在任何位置上插入和删除的操作都是相等概率的,插入一个元素时平均要移动表中n/2个元素。
因为总元素移动是n(n+1)/2,再乘以1/(n+1),就等于二分之一。

7.n个结点的单链表插入一个新结点,时间复杂度为O(1)。

8.非空的循环单链表head的尾链结点(p所指向)满足p->next==head。

9.长度为n的顺序表的表尾插入一个新元素的时间复杂度是O(1),因为直接插入末尾,不移动元素。

10.①单链表的插入和删除操作无需改变结点的存储位置,只需要修改相关指针即可。
②顺序表一般情况下都需要移动元素,在特殊位置表尾进行操作时不需要移动元素。

11.顺序表和链表各自的特点。
存储分配的方式:
顺序表的存储空间是静态分配的。
链表的存储空间是动态分配的。

存储密度:
顺序表的存储密密度=1
链表的存储密度

存取方式:
顺序表是可以随机存取,也可以顺序存取
链表是顺序存取

插入/删除时移动元素的个数:
顺序表平均需要移动近一半元素
链表不需要移动元素,只需要修改指针

12.单链表中结点p不是链尾结点,若在p之后插入结点s,应该执行s->next=p->next;p-next=s;

13.rear指向非空的带头结点的单循环链表的尾链结点的指针。若想删除链表的第一个数据结点,应该执行s=rear->next->next;rear->next->next=s->next;free(s)

14.双向循环链表结构为(data,prior,next),且不带表头结点。若想在结点p之后插入j结点s应该执行
s->prior=p;s->next=p->next;p->next->prior=s;p->next=s

15.给n个元素的一堆数组,建立一个有序单链表的时间复杂度为O(n的二次方)

16.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0wioiw0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值