线行链表及其运算.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
printf("\n") ; while(!StackEmpty(&s)) { /*输出转换的结果*/ x=pop(&s); /*调用退栈函数将删除的元素值赋给x*/ printf("%d ",x); } } void main() { /*主函数*/ long n; int r; printf("\n inpute n,r :") ; scanf("%ld ,%d ",&n,&r); /*输入十进制整数n及转换基数r*/ conversion(n,r); /*调用转换函数并输出转换结果*/ } 注:r可为8、2、16等。例如,当运行此程序时,n为74,r为2,则转换结果为二进制数1001010。 4.2 队列及其基本运算 1.什么是队列 队列(queue )是一种只允许在表的一端进行插入,而在另一端进行删除的线性表。允许插入(入队)的一端称为队尾(rear),允许删除(出队)的一端称为队头(front)。不含元素的队列称为空队列。 若将元素按a1,a2,a3,…,an 的顺序入队,则a1为队头元素,an为队尾元素,如图4-5所示。 退出队列时,也只能按a1,a2,a3,…,an 的顺序出队。这和日常生活中的排队是一致的。 出队列 ←  a1 a2 a3 … an ← 入队列 ↑      ↑ 队头 队尾 图4-5 队列示意图 在队列中,最先插入的元素,将最先能够被删除。反之,最后插入的元素,将最后才能被删除。因此,队列又称为“先进先出” 或后进后出的线性表。 队列也有顺序存储和链式存储两种情况。 2. 队列的顺序存储结构和基本运算 队列的顺序存储结构称为顺序队列。顺序队列通常用一个一维数组来存放队列中的数据元素。此外,还需设置两个整形变量front和rear作为队头指示器和队尾指示器,分别指示队头和队尾元素在向量空间中的位置。 我们约定在队列初始化时,这两个指示器均置0值。入队时,将新元素插入到rear所指位置后,再将rear的值加1;出队时,删除front所指位置的元素后,再将front的值加1并返回被删元素。由此可见,当队头和队尾指示器值相等时,队列为空 。 在非空队列里,front始终指向队头元素,而rear始终指向队尾元素的下一位置。在队列中,队尾指示器 rear 与队头指示器 front 共同反映了队列中元素动态变化的情况。 假设给队列分配的最大存储空间为4(如图4-6所示)。在图4-6(b)所示满队列状态下,如果还有新元素请求入队,则会出现“上溢” 错误。 0 1 2 3 0 1 2 3 front front rear rear (a) 队列初值为空 (b) A、B、C、D入队 0 1 2 3 0 1 2 3 front rear front rear (c) A出队 (d) B、C、D出队,队空 图4-6 顺序队列操作示意图 A B C D B C D cur=(LinkList)malloc(sizeof(ListNode));/

文档评论(0)

2837587390 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档