- 24
- 0
- 约5.53千字
- 约 51页
- 2017-05-05 发布于湖北
- 举报
通常称,栈和队列是限定插入和删除只能在表的端点进行
通常称,栈和队列是限定插入和删除只能在表的“端点”进行的线性表。;第三章 栈和队列;学习提要:
1.掌握栈和队列这两种抽象数据类型的特点,
并能在相应的应用问题中正确选用它们。
2.熟练掌握栈类型的两种实现方法,即两种存
储结构表示时的基本操作实现算法,特别应
注意栈满和栈空的条件以及它们的描述方法。
3.熟练掌握循环队列和链队列的基本操作实现
算法,特别注意队满和队空的描述方法。
重难点内容:
顺序栈的相关操作、循环队列的判空判满;3.1 栈(stack);栈的定义和特点
定义:限定仅在表尾进行插入或删除操作的线性表,表尾—栈顶,表头—栈底,不含元素的空表称空栈。; ADT Stack {
数据对象:
D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 }
数据关系:
R1={ ai-1, ai | ai-1, ai∈D, i=2,...,n }
约定an 端为栈顶,a1 端为栈底。 ;InitStack(S);顺序栈;实现:一维数组s[M]; Status InitStack (SqStack S)
{// 构造一个空栈S
S.base=(SElemType*)malloc(STACK_INIT_SIZE *sizeof(SElemType));
if (!S.base) exit (OVERFLOW); //存储分配失败
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}; Status Push (SqStack S, SElemType e) {
if (S.top - S.base = S.stacksize) {//栈满,追加存储空间
S.base = (SElemType *) realloc ( S.base,
(S.stacksize + STACKINCREMENT) *
sizeof (SElemType));
if (!S.base) exit (OVERFLOW); //存储分配失败
S.top = S.base + S.stacksize;
S.stacksize += STACKINCREMENT;
}
*S.top++ = e;
return OK;
};Status Pop (SqStack S, SElemType e) {
// 若栈不空,则删除S的栈顶元素,
// 用e返回其值,并返回OK;
// 否则返回ERROR
if (S.top == S.base) return ERROR;
e = *--S.top;
return OK;
}
;0;链栈
栈的链式存储结构。栈顶指针就是链表的头指针。; 入栈操作;3.2 栈的应用;3.2.1 数制转换;; 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);
}
}//conversion
;3.3.2 括号匹配的检验;分析可能出现的不匹配的情况:;算法的设计思想:;3.2.3 行编辑程序问题;假设从终端接受了这样两行字符:
whli##ilr#e(s#*s)
outcha@putchar(*s=#++);; while (ch != EOF ch != \n) {
switch (ch) {
case # : Pop(S, c); break;
case @: ClearStack(S); break;// 重置S为空栈
您可能关注的文档
- OverviewofExRegulationinChinaByJianpingXu,NEPSI.ppt
- OverviewOfClusteringTechniques.ppt
- January26,2004JohnKubiatowicz(http.cs.berkeley.edu~.ppt
- Dijkstra'sAlgorithmforSingle-SourceShortestPathProblem.ppt
- LindaS.GottfredsonSchoolofEducationUniversityof.ppt
- DetectingPrimes.ppt
- HardeningHTaccess.ppt
- XMLSearchandXQueryFull-Text.ppt
- TheLearningWithErrorsProblem.ppt
- HashTables–2.ppt
- 浙江省温州市2024-2025学年七年级上学期语文期末考查卷.docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(原卷版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(解析版).docx
- 精品解析:北京市海淀区2025-2026学年九年级上学期期末语文试题(解析版).docx
- 精品解析:北京市东城区汇文中学2025-2026学年八年级上学期期中语文试题(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(原卷版).docx
- 精品解析:2024-2025学年广东省广州市从化区街口镇中心小学人教版五年级上册期中测试数学试卷(解析版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(解析版).docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(解析版).docx
原创力文档

文档评论(0)