- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,
您可能关注的文档
最近下载
- 楼梯的认知《建筑构造识图与制图》.pptx VIP
- 3.5.3 手卫生管理(Word版本).docx VIP
- 国际传播(第二版)第四章 国际传播的主体.pptx VIP
- SH/T 3558-2016 石油化工工程焊接通用规范.pdf VIP
- 案例学AIGC+Premiere视频编辑与特效制作(微课版) -教学教案.docx
- 智慧医疗云平台建设方案.pptx VIP
- 2025湘美版美术七年级下册第二单元《第1课 花卉的秘密》教案.doc VIP
- PLC技术应用:博途软件的使用.pptx VIP
- 安川电机 ∑-II系列SGM□HSGDH用户手册.pdf VIP
- 2024年LED行业分析报告:Mini/Micro LED,显示与背光双翼齐飞.pdf VIP
文档评论(0)