LIFO栈 ADT接口 链表实现

Posted wallace-s-book

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LIFO栈 ADT接口 链表实现相关的知识,希望对你有一定的参考价值。

LIFO 链栈结构

1 typedef int ElemType;
2 struct node{
3     ElemType data;
4     struct node* next;
5 };
6 typedef struct node* LinkedStack;

LIFO 链栈基本操作

 1 //LIFO 链栈初始化
 2 void InitStack(LinkedStack top){
 3      top = NULL;
 4 }
 5 
 6 //LIFO 链栈判断栈空
 7 boolean StackKEmpty(LinkedStack top){
 8      if(top == NULL) return true;
 9      else return false;
10 11 
12 //LIFO 链栈进栈
13 void Push(LinkedStack top, ElemType x){
14      LinkedStack p;
15      p = malloc(sizeof *p);
16      p -> data =x;
17      p -> next = top;
18      top = p;
19 }
20 
21 //LIFO 链栈出栈
22 ElemType Pop(LinkedStack top){
23      LinkedStack p;
24      ElemType x;
25      if(top == NULL){
26         printf("栈下溢错误!
");
27         exit(1);
28      }
29      p = top;
30      x = p -> data;
31      top = top -> next;
32      free(p);
33      return x;
34 }
35 
36 //LIFO 链栈读取栈顶
37 ElemType GetTop(LinkedStack top){
38      if(top == NULL){
39         printf("栈下溢错误! 
");
40         exit(1);
41      }
42      return top -> data;
43 } 

 

以上是关于LIFO栈 ADT接口 链表实现的主要内容,如果未能解决你的问题,请参考以下文章

表栈和队列

双端队列 ADT接口 链表实现

常见的基本数据结构——栈

常见的基本数据结构——栈

第三部分数据结构[专业课考试3]

数据结构-栈&队列&Deque实现比较