- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[数据结构第三章
二、简述栈和线性表的区别。
答:线性结构的特点是在数据元素的非空有限集中,存在惟一的一个被称为“第一个”的数据元素;存在惟一的一个被称做“最后一个”的数据元素;除第一个之外,集合中的每个数据元素均只有一个前驱;;除最后一个之外,集合中每个数据元素均只有一个后继。
线性表是最常用且最简单的一种数据结构。一个线性表是n个数据元素的有限序列。线性表是一个相当灵活的数据结构,它的长度可根据需要增长或缩短,即对线性表的数据元素不仅可以访问,还可在在任意位置进行插入和删除操作等。
栈是一种特殊的线性结构,从数据的逻辑结构角度来看,栈是线性表,从操作的角度来看,栈的基本操作是线性表操作的子集,是操作受限制的线性表,其特点是栈限定仅在表尾进行插入和删除操作的线性表,它的存取特征是后进先出。
三、写出下列程序段的输出结果(栈的元素类型Selem Type为char)。
Void main( )
{stack s ;
Char x,y;
Initstack(s);
x =’c’;y=’k’;
Push(s,x);push(s,’a’);push(s,y);
Pop(s,x);push(s,’t’);push(s,x);
Pop(s,x);push(s,’s’);
While(!stackempty(s)) {pop(s,y);printf(y);}
Printf(x);
}
输出结果:stack
四、简述以下算法的功能(栈的元素类型Selem Type为int)。
1、status algol(stack s)
{
Int I,n,A[255];
n=0;
while(!stackempty(s)) {n++;pop(s,A[n]);}
for(i=1;i=n;i++)
push(s,A[i]);
}
答案:对栈中元素进行反序入栈。
2、status algo2(stack S,int e)
{ stack T;int d;
Initstack(T);
While(!stackempty(s))
{ pop(s,d);
If(d!=e) push(T,d);
}
While(!stackempty(T))
{ pop(T,d);
Push(S,d);
}
}
答案:利用栈T辅助将栈S中所有值为e的数据元素删除。
二十八、.假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的置空队、判队空、入队和出队等算法。
【分析】带头结点的循环链表表示的队列如图3-7所示,仅有队尾指针rear,但可通过rear-next找到头结点,再通过头结点找到队头,即rear-next-next。
图3-7 带头结点的循环链表队列
【算法】
① 置空队
LinkList SetNull(){
LinkList rear;
rear=new LNode;
rear-next=rear;
return rear;
}
② 判队空
int Empty(LinkList rear){
if (rear-next==rear)
return 1; //若队列为空返回1
else
return 0; //否则返回0
}
③ 入队
LinkList ENQUEUE(LinkList rear,DataType x){
LinkList p;
p=new LinkList;
p-data=x;
p-next=rear-next; //将p插入到rear-next之后
rear-next=p;
rear=p;
return rear; //返回新的队尾指针
}
④ 出队
LinkList DEQUEUE(LinkList raer,DataType *x){
LNode *p,*q;
if (rear-next==rear) //若队空,则输出队空信息
cout“EMPTY”;
else{
q=rear-next;
p=q-next;
} //否则q指向头结点,p指向队头
if (p==rear)
rear=q; //若队中仅有一个元素,则将rear指向头结点
q-next=p-next; //将p所指结点出队
*x=p-data;
delete p; //将对头结点的值赋给形参*x
return
您可能关注的文档
- [广州亚运安检实用英语.ppt
- [教育系统职务晋升各类表册填写说明.doc
- [教育科研先进单位材料.doc
- [调音技巧】对歌声音色的调节.doc
- [广州候车亭广告.ppt
- [调香实验.doc
- [教育细节月度之星月度教师.doc
- [教育职称论文幼儿美术教育.doc
- [谈一谈你对绿色物流的认知与理解.doc
- [教育部-Module11unit2Hetrainedforfiveyears-孟凡梅.doc
- 2025年浙江丽水龙泉市产业创新服务中心招聘工作人员笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年河南省疾病预防控制中心招聘方案笔试高频难、易错点备考题库及参考答案详解.docx
- 2025年济宁市鱼台县融媒体中心招聘人员笔试备考题库及答案详解1套.docx
- 2025年浙江省国土空间规划研究院招聘工作人员31人笔试高频难、易错点备考题库及参考答案详解一套.docx
- 2025年江西省中医药研究院高层次人才招聘(36)笔试高频难、易错点备考题库及答案详解一套.docx
- 2025年浙江衢州开化县部分事业单位招聘6人(第4号)笔试备考题库及参考答案详解.docx
- 2025年河北唐山市路北区赴高校选聘55名教师笔试备考题库及答案详解一套.docx
- 2025年江西南昌大学附属口腔医院高层次人才(博士)招聘30人笔试备考题库及答案详解1套.docx
- 2025年浙江温州市瓯海区事业单位招聘(选调)52人笔试高频难、易错点备考题库含答案详解.docx
- 2025年浙江绍兴嵊州市事业单位招聘93人笔试高频难、易错点备考题库及答案详解一套.docx
文档评论(0)