第3章线性结构-堆栈-队列选编.ppt

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

3.2 堆栈;3.2 堆栈及其应用——定义;后进先出----LIFO (Last In First Out) 栈顶浮动 栈底固定;顺序存储结构: 顺序栈 链式存储结构: 链栈;3.2.1. 顺序栈;#define MAXSIZE 100 //栈容量 typedef struct { DataType data[MAXSIZE ]; //存储空间 int top; //栈顶指针 }SStack; ;栈空时,top=-1;非空时,top位于栈顶元素的位置 顺序栈的空间固定;SStack *InitStack( ) { //构造一个空栈s SStack * S ; S =(SStack *)malloc(sizeof(SStack)); S-top=-1; return S; };int EmptySStack(SStack *S) { //若栈空,则返回1,否则返回0 if (S-top==-1) return 1; else return 0; };int GetTop(SStack *S, DataType *x) { //若栈不空,则返回1,否则返回0 if (S-top==-1) return 0; else { *x= S-data[ S-top]; return 1; } };int Push(SStack *S, DataType x) { //插入元素x为新的栈顶元素 if (S-top==MAXSIZE-1) return 0; else {S-top++; S-data[ S-top]=x; return 1; } };int Pop(SStack *S, DataType *x) { //若栈不空,则删除S的栈顶元素,用x返回其值,并返回1;否则返回0 if (S-top==-1) return 0; else { *x= S-data[ S-top]; S-top--; return 1; } };进栈演示;1.a b c顺序进栈则出栈顺序为 c b a; 2.a 进栈,a出栈,然后b、c 进栈,再顺序出栈 , 则出栈顺序为a c b; 3.a 进栈, a出栈 ; b进栈, b出栈 ; c进栈, c出栈 ;则出栈顺序为a b c; 4.a、b进栈,a、b 出栈 然后 c 进栈,再出栈 ,则出栈顺序为b a c; 5.a、b 进栈 , b出栈; c进栈 ,然后出栈。则出栈顺序为b c a;; 十进制N和其它进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理: n =(n div d)*d + n mod d ( 其中:div为整除运算,mod为求余运算) 例如 (1348)10=(2504)8,其运算过程如下:; 其计算过程是从低位到高位顺序产生,但在输出或打印时,应从高位到低位进行,顺序相反,因此在运算过程中,将得到的八进制数各位数顺序进栈,再按出栈顺序输出即可。;void conversion( ) { initstack(s); scanf (“%d”, n); while(n){ Push(s, n % 8); n=n / 8; } while(! Stackempty(s)) { Pop(s, e); printf(“%d”,e); } } ;解答:按除2取余法,得到的余数依次是1、0、1、1,则十进制数转化为二进制数为1101。 分析:由于最先得到的余数是转化结果的最低位,最后得到的余数是转化结果的最高位,因此很容易用栈来解决。 ;void dec_to_bin(int N, int B) { InitStack(s); while(N) { Push(S, N%B); N=N/B; } while(!StackEmpty(s)) { Pop(s, e); printf(“%d”,e); } };3.3 队列;若线性表的插入操作在一端进行,删除操作在另一端进行,则称此线性表为队列。;a1,

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档