您的位置:首页 >知识经验 >

栈道(栈)

大家好,我是小新,我来为大家解答以上问题。栈道,栈很多人还不知道,现在让我们一起来看看吧!

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

2、   栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。

3、它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

4、   栈是允许在同一端进行插入和删除操作的特殊线性表。

5、允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。

6、插入一般称为进栈(PUSH),删除则称为退栈(POP)。

7、 栈也称为后进先出表(LIFO表)。

8、   栈可以用来在函数调用的时候存储断点,做递归时要用到栈!    栈的模型二、基本算法      进栈(PUSH)算法   ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);   ②置TOP=TOP+1(栈指针加1,指向进栈地址);   ③S(TOP)=X,结束(X为新进栈的元素);   2、退栈(POP)算法   ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);   ②X=S(TOP),(退栈后的元素赋给X);   ③TOP=TOP-1,结束(栈指针减1,指向栈顶)。

9、    三、栈的实现   在pascal下的实现   数组型   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;   }。

本文到此讲解完毕了,希望对大家有帮助。

免责声明:本文由用户上传,如有侵权请联系删除!