Day3——数据结构

今天换了一个老师讲。因为座位是随便坐的,所以,我们就坐到了第一排啊。


(一)链表

链表可以存放一系列数,这点与数组一样。但与数组不同的是它不是天生就是有序的,需要刻意记录。链表的数据还是用数组存储。
链表也分为好几种。

1、顺序链表
除了记录数据外,还要另开一个数组记录每个元素下一个元素的下标。同时记录第一个元素。
2、反向链表
除了记录输入数据,还要另开一个数组记录每个元素前一个元素的下标。同时记录最后一个元素。
3、循环链表
最后一个元素为第一个元素,其余一样。
4、双向链表
记录数据。同时开两个数组,分别记录前一个数的小标与后一个下标。

插入元素:
[Code]
…通过遍历等方法找到a,假如a,x,c的下标为pa,px,pc。
next[px]=next[pa];
next[pa]=px;

删除元素:
[Code]
…通过遍历等方法找到a,假如a,x,c的下标为pa,px,pc。
next[pa]=next[px];
next[px]=0;
栈一般用结构体存储。
STL库中也有专门的读入等函数。只不过内存占用较大。


(二)栈

栈是一种后进先出的容器。
栈的数据存储在一个数组里,数组的大小就是这个栈容器的大小。
用top记录栈顶元素的下标。
栈结构必须实现将元素进、出栈的功能。
1、访问当前栈顶元素:CODE{s[top];};
2、新的元素X入栈:CODE{++top;s[top]=x;};
3、栈顶元素出栈:CODE{–top;}。


(三)队列

队列与栈是相对的。队列是一种先进先出容器。

普通队列
1、访问当前队首元素:CODE{q[head+1]};
2、新的元素X入队列:CODE{++tail;q[tail]=x;};
3、队首元素出队列:CODE{++head}。

环形队列
环形队列相比普通队列可以节省更多的空间。
这里写图片描述


总的来说,今天的东西是听懂了。虽然只是简单的数据结构。&_&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值