数据结构

线性表

定义:线性表是零个或多个具有相同类型的数据元素的有限序列

就像一个数组一样一个数组只能存储一种数据类型

顺序存储结构:

​ 在内存中开辟一块连续的内存空间,把线性表的数据元素依次连续存储进这片内存空间。

​ A.优点:适用于查询,适用于遍历。

​ B.缺点:不适用于插入,以及删除,

​ 由于是一片连续的内存空间除法你删最后一个数据元素,否则都会引起数据的移动,从而消耗大量时间。

​ 他需要提前分配空间,如果分配小了内存上溢,分配大了内存浪费。

链式存储结构:

​ 特点:只需要一片内存空间,连续与否都无所谓,这就表明链式存储结构可以使用那些无人使用且剩余的空间。他需要存储 的不只是自己的数据,还要存储他下一个节点的内存地址。

​ A.优点:适用于插入,以及删除

​ B.缺点:存储密度小

总结:

​ 如果这个表总是进行查询,那么使用顺序存储结构比较好。

​ 如果这个表总是进行插入删除,那么使用链式存储结构比较好。

头指针:

​ 1.头指针是指链表指向第一个节点的指针,如果他有头结点那头指针就是指向头结点的指针;

​ 2.头指针有标识作用,一般会用头指针来命名该链表

​ 3.链表为空头指针也不能为空,头指针是链表的必要元素

头结点:

​ 1.放在第一个元素节点之前,他存的东西无意义不过可以存链表长度;

​ 2.头结点不一定是链表的必要元素

单链表的插入:

​ p是当前的链表内容,s是将要插入的元素

​ s->next= p->next; p->next= s

单链表的删除:

​ p是当前的链表内容,q是将要删除的元素

​ p->next=q; p->next=q->next

单链表的整表删除:

​ 声明q和p;把第一个节点的值赋给p;循环:1,把下一个节点赋值给q 2,释放p 3,把q赋值给p;

循环链表:

​ 可以把链表的终端节点的next指向头结点。完成循环;

栈和队列

栈:

​ 仅限定在表尾进行插入删除操作的表;后进先出;

​ 允许进行插入删除的一端叫做栈顶,另一端叫栈底;

​ 不包含任何内容的叫空栈;LIFO结构(Last In First Out)后进先出;

栈的插入:

​ 叫做压栈,入栈;

栈的删除:

​ 叫做弹栈;

队列:

​ 队列是只能在一端进行插入,另一端进行删除的线性表;先进后出;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值