TableOfContents

栈Stack

1. 定义

2. 实例

3. 图示

4. 操作

5. 顺序实现

5.1. 数据结构定义

   1 #define MAXSIZE 100
   2 typedef int ElemType;
   3 typedef struct{
   4     ElemType elem[MAXSIZE];
   5     int size;
   6 }seq_stack;

5.2. 顺序栈初始化

   1 void init_stack ( seq_stack * st )
   2 {
   3     st->size=0;
   4 }

5.3. 判断栈是否为空

   1 int is_empty(seq_stack *st)
   2 {
   3     return st->size==0;
   4 }

5.4. 获取顺序栈栈顶元素

   1 ElemType get_top(seq_stack *st)
   2 {
   3    return st->elem[st->size-1];
   4 }

5.5. 入栈

   1 void push(seq_stack *st, ElemType x)
   2 {
   3     if(st->size < MAXSIZE) {
   4         st->elem[st->size]=x;
   5         st->size++;
   6     }
   7 }

5.6. 出栈

   1 ElemType pop(seq_stack *st)
   2 {
   3     return st->elem[--st->size];
   4 }

5.7. 打印栈

   1 void print_stack (seq_stack *st)
   2 {
   3    int i;
   4    for(i = 0; i < st->size; i++) 
   5        printf("%5d", st->elem[i]);
   6 }

5.8. 判断顺序栈是否已满

   1 int is_full(seq_stack *st) {
   2    return st->size == MAXSIZE;
   3 }

队列Queue

ch3n2k.com | Copyright (c) 2004-2020 czk.