数据结构04

复习:
1、什么是数据结构
是专门研究数据关系和操作的学科,而非是计算方法。
数据结构+算法=程序
2、逻辑结构和物理结构
逻辑结构:
集合:除了同属于一个集合,数据之间没有任何关系。
表:数据之间存在一对一关系。
树:数据之间存在一对多关系。
图:数据之间存在多对多关系。
物理结构:
顺序结构:数据存在在连续的内存中,使用数据的相对位置来表示数据之间的关系。
链式结构:数据分散存储在内存的任何位置,数据项中有一块指针域用来表示数据之间的关系。
逻辑结构和物理结构的对应:
表:顺序 链式
树:链式 顺序
图:顺序+链式
3、数据结构和运算
创建、销毁、清空、添加、删除、查询、修改、排序、遍历
4、表结构
顺序表:数组
链式表:链表
常见面试题:数组和链表的优缺点?

5、功能受限的表
栈:只有一个进出端口,先进后出。
有四种顺序栈:
top初值:0 入栈 top++ 空增栈
top初始:-1 top++ 入栈 满增栈
top初始:cal-1 入栈 top-- 空减栈
top初始:cal top-- 入栈 满减栈

队列:有两个进出端口,一个只能进,另一个只能出,先进先出。

封装链表:
尾添加的效率低,非法下标的判断也非常低。
1、单链表
节点:
数据域
指针域
数据项:
头指针
尾指针
节点数量
2、静态链表
节点:
数据域
游标
静态链表的节点存储在连续的内存,通过游戏来访问下一个节点。
这种链表在插入删除时只需要修改游标的值,而不用申请、释放内存达到链式结构的效果。
但是也牺牲的随机访问的功能,是给没有指针的编译实现的一种单链表。
3、循环链表
链表的最后一个节点的next不再指向NULL,面是指向头节点,这种链表叫单向循环链表,简称循环链表,它的好处理就是可以通过任何节点遍历整个链表。
4、双向链表
节点:
前驱指针
数据域
后继指针
数据项:
头节点
节点数量
双向链表的特点:
1、从任何节点都可以遍历整个链表
2、已知节点的位置,可以选择从前到后或从后到前进行遍历,以此提高链表的访问效率。

5、Linux内核通用链表
链表的节点不能包含万物,那么就让万物包含节点。
6、通用链表

关于链表常考的笔试面试题:
1、单链表逆序,在原链表的基础上进行调整。
Node* p1.*p2.*p3;
2、找出链表的倒数第n个节点。
先跑n次
while(n–)node=node->next;
3、判断链表中是否有环。
快慢指针
4、找出环形链表的入口。

5、合并两个有序链表,合并后依然保持有序。
有序 合并
6、判断两个链表是否是Y型链表。
判断最后一个节点指向是否相同
找出Y型节点??

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值