三九宝宝网宝宝百科宝宝知识

数据结构教程第十课栈的表示与实现

11月25日 编辑 39baobao.com

[孕晚期各种不适齐上阵,宝妈表示只想快点卸货,你中枪了吗]孕晚期,是一个特别难熬的阶段。宝宝越来越大,肚皮越来越沉,坐着不舒服、躺着不舒服、站着更加不舒服,孕妈妈可能感觉到各种不适以及生活中的不便,时刻倒数着啥时候可以“卸货”。...+阅读

本课主题: 栈的表示与实现

教学目的: 栈的数据类型定义、栈的顺序存储表示与实现

教学重点: 栈的顺序存储表示与实现方法

教学难点: 栈的定义

授课内容:

一、栈的定义

栈是限定仅在表尾进行插入或删除操作的线性表。

栈的表尾称为栈顶,表头称为栈底,不含元素的空表称为空栈。

栈的抽象数据类型定义:

ADT Stack{

数据对象:D={ai|ai(- ElemSet,i=1,2,...,n,n>=0}

数据关系:R1={|ai-1,ai(- D,i=2,...,n}

基本操作:

InitStack(

SElemType *top; 设栈顶栈底两指针的目的是便于判断栈是否为空

int StackSize; 栈的当前可使用的容量.

}SqStack;

顺序栈的的模块说明:

struct STACK {

SElemType *base;

SElemType *top;

int stacksize;

};

typedef struct STACK Sqstack;

Status InitStack(SqStack

Status DestroyStack(SqStack

Status ClearStack(SqStack

Status StackEmpty(SqStack S);

int StackLength(SqStack S);

Status GetTop(SqStack S,SElemType

Status Push(SqStack

Status Pop(SqStack

Status StackTrerse(SqStack S,Status (*visit)());

Status InitStack(SqStack

if(!S.base)exit(OVERFLOW);

S.top=S.base;

S.stacksize=STACK_INI_SIZE;

return OK;

} IniStack

Status DestroyStack(SqStack {

} DestroyStack

Status ClearStack(SqStack {

S.top=S.base;

} ClearStack

Status StackEmpty(SqStack S); {

if(S.top==S.base) return TRUE;

else return FALSE;

} StackEmpty

int StackLength(SqStack S); {

int i; SElemType *p;

i=0;

p=S.top;

while(p!=S.base) {p++; i++; }

} stackLength

Status GetTop(SqStack S,SElemType {

if(S.top==S.base) return ERROR;

e=*(S.top-1);

return OK;

} GetTop

Status Push(SqStack {

if(S.top - s.base>=S.stacksize) {

S.base=(ElemType *) realloc(S.base,

(S.stacksize + STACKINCREMENT) * sizeof(ElemType));

if(!S.base)exit(OVERFLOW);

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;

} *S.top++=e;

return OK;

} Push

Status Pop(SqStack {

if(S.top==S.base)

return ERROR;

e=*--S.top;

return OK;

} Pop

Status StackTrerse(SqStack S,Status (*visit)()); {

} StackTrerse

以上伪代码的C语言源码

三、总结

栈的定义

栈的顺序存储实现

以下为关联文档:

妈妈要知道:宝宝睡觉时的三个异常信号,表示要生病啦!我们知道宝宝不同的哭法是在表达不同的需要、不同的笑容代表不同的含义,其实宝宝睡觉时不同的行为也在向妈妈传递着他的身体信息,妈妈们接收到了吗?一、流口水宝宝在白天的时...

对于诺贝尔奖,澳洲表示可以傲娇一下对于诺贝尔奖,澳大利亚完全可以傲娇一下,多达15个诺贝尔奖遍及众多领域,且其中许多获奖者均从事心理学或医学专业。今天我们的主人公可是在有着响当当名号的昆士兰医学大神 Pau...

各种场合下表示怀疑的种种说法此事我觉得奇怪,难以相信。Cela me semble étranger. J' ai (de la) peine à le croire. 我不相信他。Je n'ai pas confiance en lui. 您不相信我的话? Douteriez-vous de ma...

倍数的五种表示1)倍数+形容词/副词比较级+than 【例如】 The girl is ten times cleverer than her brother. 2)倍数+as+形容词/副词/(名词)+as 【例如】 His apartment is three times as large...

法语词汇法语分数的表示1/2 un demi, une moitié 1/3 un tiers 2/3 deux tiers 1/4 un quart 3/4 trois quarts 1/5 un cinquième 3/7 trois septièmes 10/45 dix quarante-cinquièmes Nous on...

法语语法几种表示强调的句型结构1. 1.用c’est … qui 强调主语, c’est … que 强调宾语、状语、表语: C’est Claude Dulong qui est l’auteur de La vie quotidienne à l"Elysée au temps de Charles de...

第四章用字母表示数拓展测试题——初二数学试题一、 选择题(每题3分,共30分) 1、下列代数式中符合代数式书写要求的有( ) ① 1 x2y ②ab÷c2 ③ ④ ⑤2×(a+b) ⑥ah·2 A、1个 B、2个 C、3个 D、4个 2、某种商品的进价为a元,商店...

老师,分数不能表示所有小数昨天组内上了一节研究课《认识小数》,正当显示我的得意之处,沟通整数、分数、小数之间的关系,揭示零点几的小数就是十分之几的分数的另一种写法,小数就是十进分数,小数和整数都是...

用字母表示数的评课稿一、联系生活,唤醒已有认识,在上课开始时,陈老师搜集了一些生活中和字母有关的图片,比如生活中常见的扑克牌和肯德基标志等,通过这些图片上的信息,让学生唤起对已有生活经验的回忆...

推荐阅读
图文推荐