网站大量收购独家精品文档,联系QQ:2885784924

计算机软件基础(自考本科)(1.9).pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机软件基础(自考本科)(1.9)

桂林电子科技大学 GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY 桂林电子科技大学 GUILIN UNIVERSITY OF ELECTRONIC TECHNOLOGY 计算机 软件基础 第二篇 数据结构基础 第九章 栈、队列和数组 一、栈(stack) (一)栈的概念 1. 栈:是一种后进先出的线性表,简称为LIFO表(Last In First Out)。 2. 栈顶(Top):栈中进行插入、删除操作的一端(即:变化端)。 3. 栈低(Bottom):栈中固定不变的一端。 4. 栈的存储结构:顺序存储和链式存储。 一、栈(stack) (二)顺序栈 -1 0 1 2 3 4 bottom top 栈空(top=-1) -1 0 1 2 3 4 top bottom 1. 形态 进栈(top=0) A top 一、栈(stack) -1 0 1 2 3 4 bottom top 栈满(top=m-1) A B C D E top top top top top bottom 出栈 -1 0 1 2 3 4 A B C D E top top top 栈的体积:一个栈所能容纳元素个数 一、栈(stack) 3. 顺序栈的类型 #define m 100 //定义栈的最大容量为100 struct seqstack { datatype data[m]; //栈内最多存放m个元素 int top; //指向栈顶的指针 }s; 一、栈(stack) 4. 顺序栈的基本运算----进栈 void push( s, x) { if(s.top==m-1) 上溢; else { s.top++; s.data[s.top]=x; } } step1:判断栈是否已满,若满,则上溢,否则进行下一步; step2:栈顶指针上移一个节点; Step3: 将x加入到top指定的位置。 一、栈(stack) 5. 顺序栈的基本运算----退栈 void pop(s) { if(s.top==-1) 下溢; else { x=s.data[s.top]; s.top--; } } step1:判断栈是否为空,若空,则下溢,否则进行下一步; Step2: 保留被删除元素到变量x中; step3:栈顶指针下移一个节点; 一、栈(stack) (三)链栈 1. 形态 Ls a b x 非空栈 栈顶元素 栈低元素 Ls 空栈 链栈:是一个不带表头节点的单链表(栈顶指针直接 指向栈顶元素)。 一、栈(stack) (三)链栈 2. 类型定义 struct node { datatype data; struct node *next; }*Ls; 一、栈(stack) (三)链栈 3. 进栈运算 void insert(Ls, x) { s=(struct node)malloc(sizeof(struct node)); s-data=x; s-next=Ls; Ls=s; } step1:申请一个新节点,并让s指向该节点; step2:将x赋给新节点的data域; step3:将原栈点链入新节点的next域; step4:新节点作为新的栈顶节点。 一、栈(stack) (三)链栈 4. 退栈运算 void del(Ls) { if(Ls==NULL) return; else { p=Ls; Ls=Ls-next; free(p); } } step1:判断栈是否为空,如为空,则直接返回,否则进行第二步; step2:让p指栈顶元素; step3:栈顶指针向下移一位; step4:删除原栈顶元素。 二、队列(queue) (一)队列的概念 1. 队列:是一种先进先出的线性表,简称为FIFO表( First In First Out)。 2. 队头(front):队列中进行删除操作的一端。 3. 队尾(rear):队列中进行插入操作的一端。 4. 队列的存储结构:顺序存储和链式存储。 二、队列(queue) (二)顺序队列 1. 形态: -1 1 0 2 3 4 5 f=r=-1 队列空 -1 1 0 2 3 4 5 f 入队列 a r b c r r 注意:入队时, 头指针保持不 动,尾指针往 后移。 二、队列(queue) (二)顺序队列 1. 形态: -1 1 0 2 3 4 5 f 队列满 -1 1 0 2 3 4 5 f 出队列 r

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档