王朝百科·作者佚名  2009-10-28
窄屏简体版  字體:   |    |    |  超大  

计算机一、基本概念

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线形表。

栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。

栈可以用来在函数调用的时候存储断点,做递归时要用到栈!

栈的模型

二、基本算法

1、进栈(PUSH)算法

①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);

②置TOP=TOP+1(栈指针加1,指向进栈地址);

③S(TOP)=X,结束(X为新进栈的元素);

2、退栈(POP)算法

①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);

②X=S(TOP),(退栈后的元素赋给X);

③TOP=TOP-1,结束(栈指针减1,指向栈顶)。

三、栈的实现

在pascal下的实现

1、数组型

Const

m=栈表目数的上限;

Type

stack=array[1..m] of stype; {栈类型}

Var

s:stack;{栈}

top:integer; {栈顶指针}

2、记录型

const

m=栈表目数的上限;

type

stack=record

elem: array[1..m] of elemtp;

top:0..m; {栈顶指针}

end;

Var

s:stack;{栈}

在C/C++中栈的一些基本操作:

C代码:

/*

@**2009/09/24

栈的基本操作

*/

#include <iostream>

#define MaxSize 100

using namespace std;

typedef struct

{

int data[MaxSize];

int top;

}SqStack;

void InitStack(SqStack *st) //初始化栈

{

st->top=-1;

}

int StackEmpty(SqStack *st) //判断栈为空

{

return (st->top==-1);

}

void Push(SqStack *st,int x) //元素进栈

{

if(st->top==MaxSize-1)

printf("栈上溢出!

");

else

{

st->top++;

st->data[st->top]=x;

}

}

void Pop(SqStack *st) //退栈

{

if(st->top==-1)

printf("栈下溢出

");

else

st->top--;

}

int Gettop(SqStack *st) //获得栈顶元素

{

if(st->top==-1)

{

printf("栈空

");

return 0;

}

else

return st->data[st->top];

}

void Display(SqStack *st) //打印栈里元素

{

int i;

printf("栈中元素:");

for(i=st->top;i>=0;--i)

printf("%d ",st->data[i]);

printf("

");

}

int main()

{

SqStack L;

SqStack *st=&L;

InitStack(st);

printf("栈空:%d

",StackEmpty(st));

for(int i=1;i<10;++i)

Push(st,i);

Display(st);

printf("退一次栈

");

Pop(st);

printf("栈顶元素:%d

",Gettop(st));

Pop(st);

Display(st);

return 0;

}

语言【字典】

inn; shed; warehouse;

(1)

zhàn

(2)

(形声。从木,戋(jiān)声。本义:牲口棚)

(3)

同本义 [shed]

栈,棚也。――《说文》。按,栅者,竖编之,棚者,横编之。

埋之马栈之下。――《战国策·齐策》

马栈最难。――《管子·小问》

编之以皁栈。――《庄子·马蹄》。崔注:“木棚也。”

毙于内栈。――颜延之《赭白马赋》

驽马恋栈豆。――《晋书·宣帝纪》

四墙其社,覆上栈下,示不得通。――《汉书》

(4)

又如:皂栈(马房中的栅栏和方格木条)

(5)

古代用竹木条横排编成车箱的轻便车子 [bamboo or wood cart]

栈,竹木之车曰栈。――《说文》

有栈之车。――《诗·小雅·何草不黄》

车乘栈车。――《周礼·巾车》

宾奠币于栈左。――《仪礼·既夕礼》

(6)

又如:栈车(栈舆。古代用竹木条编成车箱的车,不蒙皮革);栈轸(指编排竹木条而成的车箱,不蒙皮革);栈舆马(陋车劣马。后用为居官清廉俭朴的典实)

(7)

栈道 [plank road built along the face of a cliff]

栈道千里,通于蜀汉。――《战国策·秦策》

复从峡度栈以上。――《徐霞客游记·游黄山记》

(8)

又如:栈山(以栈为道跋越高山);栈山航海(谓跋山涉水,逾越险阻);栈谷(架设栈道以跨越山谷);栈径(栈道);栈云(谓栈道高与云连);栈路(栈道)

(9)

留宿客商或储存货物的房屋 [warehouse;storehouse]。如:栈使(客栈的仆役);栈伙(旧时称店员或旅店的伙计);栈租(租借栈房的钱);栈货(指已运到并进入仓库的货物);栈阁(存放东西的屋子);栈师(旧称店堂、仓库里工作的职员);羊栈;栈豆(马记豆料);栈驹(饲养于厩中的马驹)

(10)

(1)

zhàn

(2)

[在栈内] 加料精养 [fee]

(3)

又如:栈羊(在圈内加料精养的肥羊);栈鹿(在栈内加料精养的鹿)

栈道

zhàndào

[a plank road built along the face of a cliff] 在悬崖绝壁上凿孔架木而成的窄路

栈房

zhànfáng

(1)

[warehouse; storehouse]∶仓库,货栈

(2)

[inn][方]∶客栈;旅店

栈桥

zhànqiáo

[landing stage] 形状像桥的建筑物,建在车站、港口、矿山或工厂,用于装卸货物或上下旅客

(栈)

zhàn ㄓㄢˋ

(1)

储存货物或供旅客住宿的房屋:货~。客~。~房。

(2)

竹木编成的遮蔽物或其他东西:马~(养马的竹木棚)。~车(古代用竹木编成棚的车子)。

(3)

用木料或其他材料架设的通道:~道。~桥(一种形似桥梁的建筑物,用于装卸货物、上下旅客等)。

(4)

通过,越过:~山航海。

郑码:FHM,U:6808,GBK:D5BB

笔画数:9,部首:木,笔顺编号:123411534

inn;shed;warehouse;

【英语】

1.a warehouse; a storehouse

2.an inn

3.a shed; a pen

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航