- 0
- 0
- 约1.21万字
- 约 84页
- 2017-04-21 发布于湖北
- 举报
数据结构第3章精要
第3章 限定性线性表—栈和队列 ;引言;3.1 栈 ;2. 栈的特点
“很窄的死胡同”
后进先出(Last In First Out),简称LIFO结构。
栈又称后进先出线性表。
3. 栈的基本运算
初始化 InitStack(S)。构造一个空栈
入栈 Push(S, e)。栈S已经存在,插入e为新的栈顶元素
出栈 Pop(S, e)。栈S存在且非空,删除栈顶元素,e返回
读栈顶元素 GetTop(S, e)。栈S存在且非空,用e返回栈顶元素
判栈空 StackEmpty(S)。栈S存在,若为空栈,返回真,否则假
;4.栈的表示和实现 ;顺序栈的类型定义
typedef struct{
SElemType *base; //栈底指针
SElemType *top; //栈顶指针
int stacksize; //栈已分配的空间大小
}SqStack; //动态分配
typedef struct{
{
SElemType data[MAXSIZE];
int top;
} SqStack; //静态分配;空栈;顺序栈中的进栈和出栈
栈仅在表的一端进行操作;
top指针始终指向栈顶元素的下一位置。;例,在栈中插入元素 A 和 B;例,删除栈顶元素 B 和 A;初始化 InitStack(SqStack S)
{
S.base = S.top = (SElemType *)malloc(…);
if(!S.base) exit(OVERFLOW);
S.stacksize = STACK_INIT_SIZE;
return OK;
};读栈顶元素 GetTop(SqStack S, SElemTypee)
{
if(S.top == S.base)
return ERROR;
e = *(S.top – 1);
return OK;
};入栈 Push(SqStack S, SElemType e)
{
if(S.top–S.base = S.stacksize){
S.base = (SElemType *)realloc(…);
if(!S.base) exit(OVERFLOW);
S.top = S.base + S.stacksize;
S.stacksize += STACKINCREMENT;
}
*S.top++ = e; //*S.top = e; S.top++;
return OK;
};出栈 Pop(SqStack S, SElemType e)
{
if(S.top == S.base)
return ERROR;
e = *--S.top; //--S.top ; e = *S.top;
return OK;
};链栈
typedef struct STNode{
SElemType data;
struct STNode *next;
}STNode, *LinkStack;
栈顶结点
栈底结点
栈顶指针:链栈由栈顶指针S唯一确定
链栈本身无容量限制,在用户内存空间的范围内不会出现栈满情况;初始化 InitStack(LinkStack S)
{
S = NULL;
return OK;
};入栈 Push(LinkStack S, SElemType e)
{
p = (LinkStack) malloc( sizeof( STNode));
if(!p)
exit(OVERFLOW);
p-data = e;
①p-next = S;
②S = p;
return OK;
};出栈 Pop(LinkStack S, SElemType e)
{
if(S == NULL)
return ERROR;
e = S-data;
①p = S;
②S = S-next;
free(p);
return OK;
};5.栈总结
栈是一种具有线性结构的数据结构,是操作受限的线性表;
栈的特点是后进先出,只能在栈顶进行插入和删除操作,分别称为入栈和出栈;
顺序栈中,栈空标志:S.top = S.base;
栈满标志:S.top – S.base = S.stacksize;
您可能关注的文档
- 数据结构-第3章栈和队列精要.ppt
- 数据结构820记忆性题总结(By Dawnon)精要.docx
- 数据结构5精要.docx
- 数据结构 第六章-树精要.ppt
- 数据结构chapter1绪论精要.ppt
- 数据结构5-数组精要.ppt
- 数据结构chap1精要.ppt
- 数据结构-08散列精要.ppt
- 数据结构上机实验报告精要.docx
- 数据结构——串精要.ppt
- 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
最近下载
- 中国心律失常护理专家共识(2025版).docx
- 审计模拟实训教程 第5版 参考答案汇总 马春静.pdf
- 迷宫挑战级难度挺大80个.pdf VIP
- 铁路技术规章:客车统计规则.pdf VIP
- 6~23月婴幼儿辅食喂养指南解读.pptx VIP
- 幼儿教育政策与法规教学案例.pdf VIP
- 具身智能 智能化发展阶段分级指南V6.pdf VIP
- 渔夫和他的灵魂TheFishermanandhisSoul(可编辑).pdf VIP
- 核电站主设备结构2012年11月27日.pdf VIP
- 电机学(第七版)(修订版)习题答案 刘新正 ElectricMachineryEdition7Solutions.pdf
原创力文档

文档评论(0)