【无标题】

本文探讨了数据结构中的队列和栈,队列遵循先进先出(FIFO)原则,而栈则是先进后出(LIFO)。队列在遍历时基于地址指针,无需额外空间,速度较快;栈只能从顶部操作,遍历较慢且需要开辟临时空间。此外,分析了链式存储和顺序存储的优缺点,链式存储便于插入删除但存储密度小,顺序存储则利于随机访问但插入删除效率低。
摘要由CSDN通过智能技术生成

队列(Queue):是限定只能在表的一端进行插入和另一端删除操作的线性表
栈(Stack):是限定之能在表的一端进行插入和删除操作的线性表

队列和栈的规则
队列:先进先出
栈:先进后出
队列和栈的遍历数据速度
队列:基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快
栈:只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,遍历数据时需要微数据开辟临时空间,保持数据在遍历前的一致性
 

分析散列查找的两类冲突解决策略——开放地址法和链地址法的优缺点。
答案: 1.开放地址法:容易产生堆积问题;插入时可能会出现多次冲突的现象,不能直接删除元素,只能做懒惰删除;当装填因子过大时,性能急剧下降。(2分)

2.链地址法:处理冲突简单,且无聚集现象,平均查找长度短;链表中的结点是动态申请的,适合构造表不能确定长度的情况。插入结点应该在链首,删除结点比较方便,只需调整指针而不需要对其他冲突元素作调整。(2分)
 

链式存储的优点:
1、做插入、删除操作时很方便,不需要移动数据元素,动态性强;
2、不用预先估计存储空间的规模。
链式存储的缺点:
1、链式存储的操作是基于指针的,但不是所有的语言中都有指针类型;
2、对每个数据元素而言,除了自身信息外,还需要一起存放其后继存储单元的地址,这两部分共同组成一个结点;
3、存储密度小,存储密度小于1;
4、表中数据元素不可随机存取。
 

顺序存储的优点:
1、逻辑结构与物理结构是统一的,其中的元素都是顺序存储的;
2、方法简单,好理解,各种语言中都有数组,易实现;
3、不用为结点间的逻辑关系而增加额外的存储空间;
4、表中数据元素可随机存取,顺序表具有按元素序号随机访问的特点;
5、存储密度大,存储密度为1(存储密度是指一个结点中数据元素所占的存储单元和整个结点所占的存储单元之比)。
顺序存储的缺点:
1、做插入、删除操作时,要移动大量元素,因此对很长的顺序表操作效率低,插入和删除操作不方便;
2、要预先分配存储空间,预先估计过大,会导致存储空间浪费,估计过小,会造成数据溢出。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值