数据结构-PPT第三章-栈和队列精要
通常称,栈和队列是限定插入和删除只能在表的“端点”进行的线性表。;第三章 栈和队列;学习提要:
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);顺序栈;顺序栈示意图;;top; 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;
}
;补充1:
入栈口诀:
栈顶指针top先压后加( *S.top++ = e );
出栈口诀:
栈顶指针top先减后弹( e = *--S.top) ;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
;#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define OVERFL
您可能关注的文档
- 数据库课程设计报告及部分代码精要.doc
- 数据挖掘2453精要.ppt
- 数据库第4章精要.pptx
- 数据的查询和显示精要.ppt
- 数据的分析全章测试题含答案精要.doc
- 数据的输入与编辑精要.docx
- 数据的采集与音频信号的频谱分析 课程设计精要.doc
- 数据挖掘与统计决策--学科概述 聚类分析 因子分析精要.ppt
- 数据结构 实验一 图精要.doc
- 数据结构 第七章 图精要.pptx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)