栈的基本操作实现-c/c++

来源:互联网 发布:标准文摘数据库 编辑:程序博客网 时间:2024/05/17 08:52

栈 stack

概念:限定仅在表尾进行插入和删除操作的线性表

(后进先出(LIFO)的线性表)
栈的插入:进栈 
栈的删除:出栈

#include<iostream>using namespace std;typedef struct stackNode//就是单链表结构...{int data;stackNode *next;}node;typedef struct LinkStack//stack是对单链表的再包装,实现再操作{node *top;int count;}linkStack;bool stackEmpty(linkStack *pStack){if (pStack->top==NULL){return true;}elsereturn false;}bool push(linkStack *pStack,int val){node* p=new node;if (p==NULL){return false;}p->data=val;p->next=pStack->top;pStack->top=p;pStack->count++;return true;}bool pop(linkStack *pStack,int *val){if (stackEmpty(pStack)){return false;}*val=pStack->top->data;node *p=pStack->top;pStack->top=pStack->top->next;delete p;pStack->count--;return true;}int main(){linkStack linkStack0;for (int i=0;i<10;i++){push(&linkStack0,i);}int val=0;pop(&linkStack0,&val);cout<<"pop的第一个数是: "<<val<<endl;return 0;}
输出:



0 0
原创粉丝点击