栈 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;
}
else
return 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;
}
输出: