LIFO 链栈结构
- typedef int ElemType;
- struct node{
- ElemType data;
- struct node* next;
- };
- typedef struct node* LinkedStack;
LIFO 链栈基本操作
- //LIFO 链栈初始化
- void InitStack(LinkedStack top){
- top = NULL;
- }
- //LIFO 链栈判断栈空
- boolean StackKEmpty(LinkedStack top){
- if(top == NULL) return true;
- else return false;
- }
- //LIFO 链栈进栈
- void Push(LinkedStack top, ElemType x){
- LinkedStack p;
- p = malloc(sizeof *p);
- p -> data =x;
- p -> next = top;
- top = p;
- }
- //LIFO 链栈出栈
- ElemType Pop(LinkedStack top){
- LinkedStack p;
- ElemType x;
- if(top == NULL){
- printf("栈下溢错误!\n");
- exit(1);
- }
- p = top;
- x = p -> data;
- top = top -> next;
- free(p);
- return x;
- }
- //LIFO 链栈读取栈顶
- ElemType GetTop(LinkedStack top){
- if(top == NULL){
- printf("栈下溢错误! \n");
- exit(1);
- }
- return top -> data;
- }
来源: http://www.bubuko.com/infodetail-2787198.html