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

数据结构第三章栈和队列.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第三章栈和队列

数据结构 第三章 栈和队列 3.1 栈 3.1.1 栈的定义 栈(stack):是限定仅在表尾进行插入和删除操作的线性表。又称为后进先出(last in first out)的线性表(简称LIFO结构)。 栈顶(top):栈表尾端。 栈底(bottom):栈表头端。 例:假设栈 S=(a1,a2,…,an) ,则 a1 称 为栈底元素,an 为栈顶元素。栈中元素按 a1,a2,…,an 的次序进栈,退栈的第一个元 素应为栈顶元素。如右图所示。 3.1 栈 3.1.2 栈的顺序存储结构 定义:顺序栈(即栈的顺序存储结构):是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。 C语言描述 typedef struct stack_tag { elemtype *elem; //指向存放数据元素的内存块 int top; //栈顶标识,elem[top]是栈顶元素 int size; //栈的容量 }SQSTACK; 图形表示 3.1 栈 初始化栈 int InitSqstack(SQSTACK *S, int n) { //初始化顺序栈,栈的容量是n。成功则返回1,否则返回0 S-elem=(elemtype *)malloc(n*sizeof(elemtype)); //为数据元素分配内存 if (S-elem==NULL) return 0; //初始化失败 S-size=n; //设置栈的容量 S-top=-1; //设置栈为空栈 return 1; } 销毁栈 void DestroySqstack(SQSTACK *S) { //释放栈所占有的内存 free(S-elem); //释放内存,并设置为NULL S-elem=NULL; S-top=-1; //将其他成员设置成安全值 S-size=0; } 3.1 栈 入栈 int Push(SQSTACK *S,elemtype e) { //在栈顶一端插入数据元素e,操作成功,则返回1,否则返回0 if (IsSqstackFull(*S))return 0; //栈满,操作失败 S-top++; //top增1 S-elem[S-top]=e; //将e赋值成新的栈顶 return 1; } 出栈 int Pop(SQSTACK *S,elemtype *e) { //获取栈顶数据元素,并删除栈顶。操作成功,则返回1,否则返回0 if (IsSqstackEmpty(*S)) return 0; //如果栈空,操作失败 *e=S-elem[S-top]; //获取栈顶元素 S-top--; //删除栈顶 return 1; } 3.1 栈 判断栈空、栈满 int IsSqstackEmpty(SQSTACK S) { //如果栈空,则返回1,否则返回0 return S.top==-1; //top是栈顶标识,是-1时表示空栈 } int IsSqstackFull(SQSTACK S) { //如果栈满,则返回1,否则返回0 return S.top==S.size-1; //top作为elem的下标,其最大值是size-1 } 3.1 栈 3.1.3 栈的链式存储结构 3.2 栈的应用举例 3.2.1 数制转换 十进制数N和其他d进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个是辗转相除法: N = ( N div d ) × d + N mod d (其中:div为整除运算,mod为求余运算) 3.2 栈的应用举例 算法3.1如下: void conversion ( ) { //输入一个非负十进制整数,转换成八进制

文档评论(0)

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

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

1亿VIP精品文档

相关文档