第一范文网 - 专业文章范例文档资料分享平台

《数据结构——C语言描述》习题及答案 耿国华 2

来源:用户分享 时间:2025/6/3 16:04:30 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

6. 要求循环队列不损失一个空间全部都能得到利用, 设置一个标志域tag , 以tag为0或1来区分头尾指针相同时的队列状态的空与满,请编写与此结构相应的入队与出队算法。 [提示]:

初始状态:front==0, rear==0, tag==0 队空条件:front==rear, tag==0 队满条件:front==rear, tag==1

其它状态:front !=rear, tag==0(或1、2)

入队操作: …

…(入队)

if (front==rear) tag=1;(或直接tag=1)

出队操作: …

a

…(出队) tag=0;

[问题]:如何明确区分队空、队满、非空非满三种情况?

7. 简述以下算法的功能(其中栈和队列的元素类型均为int):

(1)void proc_1(Stack S)

{ int i, n, A[255]; n=0;

while(!EmptyStack(S))

{n++; Pop(&S, &A[n]);}

for(i=1; i<=n; i++) Push(&S, A[i]); }

将栈S逆序。

(2)void proc_2(Stack S, int e)

a

{ Stack T; int d; InitStack(&T);

while(!EmptyStack(S))

{ Pop(&S, &d);

if (d!=e) Push( &T, d); }

while(!EmptyStack(T))

{ Pop(&T, &d); Push( &S, d); } }

删除栈S中所有等于e的元素。 (3)void proc_3(Queue *Q)

{ Stack S; int d; InitStack(&S);

while(!EmptyQueue(*Q))

{

a

DeleteQueue(Q, &d); Push( &S, d);

}

while(!EmptyStack(S))

{ Pop(&S, &d); EnterQueue(Q,d) } }

将队列Q逆序。

实习题

1. 回文判断。称正读与反读都相同的字符序列为“回文”序列。

试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如‘序列1 &序列2’模式的字符序列。其中序列1和序列2 中都不含字符‘&’,且序列2

a

《数据结构——C语言描述》习题及答案 耿国华 2.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3rkcf4qddb721et5ixox47ty70kcsx0050j_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top