来源:互联网 发布:大数据时代下营销伦理 编辑:程序博客网 时间:2024/05/17 21:48

盏是一种受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。

允许进行插入和删除运算的一端称为栈顶(top),位于栈顶的元素称为栈顶元素。
不允许进行插入和删除运算的另一端称为栈底(bottom)

从栈中删除一个元素称为出栈或退栈

由于栈的插入和删除运算仅在栈顶一端进行,后进栈的元素必定先出栈,所以又把
栈称为后进显出表(Last In First Out,简称FIFO)

 

#include<iostream>#include<stack>using namespace std;//链栈是单链表的特例,所以其类型的定义和变量的说明和单链表一样struct StackNode{int data;     StackNode *next;};StackNode *top;   //top是栈顶指针,它指向栈顶节点。当top=NULL时,该链栈为空栈;  //栈底结点的指针域为空//初始化链栈void InitStack(StackNode *top){top = NULL;  //将链栈置空}//检查链栈是否为空bool IsEmpty(StackNode *top){   //若空则返回1,否则返回0if(top == NULL)return 1;elsereturn 0;}//读取栈顶元素int GetTop(StackNode *top){if(top == NULL){cout<<"Stack is empty!\n";return 0;}elsereturn (top->data);}//入栈StackNode *Push(StackNode *top,int x){StackNode *p;    p = new StackNode;//步骤1:为待入栈元素x动态分配新结点pp->data = x;  //步骤2:并将x值付给新节点p的数据域p->next = top;    //步骤3:将新结点p的指针域指向原栈顶节点top = p;          //步骤4:修改栈顶指针top,使其指向新节点preturn (top);     //步骤5:返回新的栈顶指针}//出栈StackNode *Pop(StackNode *top){StackNode *p;if(top == NULL){   //步骤1:检查栈是否为空cout<<"Stack is empty!"<<endl;return NULL;   //如果为空,则提示,并返回空指针}//不为空:else{    p = top;   //保留原栈顶节点指针top = top->next;   //从链栈中删除原栈顶节点delete (p);   //释放原栈顶存储空间return (top);   //出栈成功,函数返回新的栈顶指针}}int main(){}


 


——      生命的意义,在于赋予它意义。 

                   原创 http://blog.csdn.net/shuangde800 , By   D_Double




原创粉丝点击