首页 > 代码库 > 链栈--(大话数据结构97页)

链栈--(大话数据结构97页)

//链栈的实现  --大话数据结构99页#include <iostream>using namespace std;//链节点定义typedef struct stacknode{    int data;    struct stacknode * next;}StackNode, *LinkStackptr;//定义链栈,头指针 和 长度struct LinkStack{    LinkStackptr  top;    int count;};

//初始化
void InitStack(LinkStack *L){
L->top=NULL;
L->count=0;
}

//入栈int Push(LinkStack *L,int e){    LinkStackptr s=new StackNode;//新元素申请内存    s->data= http://www.mamicode.com/e;          //将待插入的数据放入 申请的节点的data    s->next=L->top;  //top 中的数据放进新节点的next    L->top=s;            //将s 的赋给top    L->count++;        //数据个数加一    return 0;              //正常终止}int Pop(LinkStack  *L){    LinkStackptr p;    if(L->top==NULL )  //判断是否为空,为空说明为空栈        return -1;    int e;       e=L->top->data;   //top 指的栈顶的 数据       p=L->top;            //top赋给p       L->top=L->top->next;   //  大话数据结构99页       free(p);                //释放P       L->count--;         //数据减一       return e;             //返回出栈数据}
// 销毁栈
void
DestroyStack(LinkStack *L){ LinkStackptr q; while(L->count) { q=L->top->next; delete L->top; L->top=q; L->count--; }cout<<"销毁成功"<<endl;}

 

void main(){    LinkStack a;
InitStack(&a); Push(
&a,3); Push(&a,4); Push(&a,5); cout<<Pop(&a)<<endl; cout<<Pop(&a)<<endl; cout<<Pop(&a)<<endl;}

链栈--(大话数据结构97页)