堆棧C語言實現


堆棧的抽象數據類型描述:

  • 類型名稱: 堆棧(Stack)。
  • 數據對象集: 一個有 0 個或多個元素的又窮表。
  • 操作集: 長度為 max_size 的堆棧 S ∈ Stack, 堆棧元素 item ∈ ElementType。
  1. stack creatc_stack(int max_size): 生成空堆棧, 其最大長度為 max_size
  2. bool is_full(stack *s, int max_size): 判斷堆棧 S 是否已滿;
  3. void push(stack *s, element_type item): 將元素 item 壓入堆棧;
  4. bool is_empty(stack *s): 判斷堆棧 S 是否為空;
  5. element_type pop(stack s): 刪除並返回棧頂元素;

偽碼描述:

 1 #define MAX_SIZE 10  // 存儲元素的最大個數
 2 #define ERROE -1
 3 #define bool int
 4 #define True 1
 5 #define Flase 0
 6 // element_type 代表任意基本數據類型
 7 
 8 typedef struct{  9  element_type data[MAX_SIZE]; 10     int top; 11 } stack; 12 
13 // 入棧
14 void push(stack *s, element_type item) 15 { 16     if (s->top < MAX_SIZE-1){ 17         s->data[(s->top)+1] = item; 18         s->top++; 19  } 20 } 21 
22 // 出棧
23 element_type pop(stack *s) 24 { 25     element_type n = NULL; 26     if (s->top != -1){ 27         n = s->data[(s->top--)]; 28  } 29     return n; 30 } 31 
32 // 判斷堆棧是否為空
33 bool is_empty(stack *s) 34 { 35     bool flag = Flase; 36     if (s->top == -1){ 37         flag = True; 38  } 39     
40     return flag; 41 } 42 
43 // 判斷堆棧是否已滿
44 bool is_full(stack *s, int MAX_SIZE) 45 { 46     bool flag = Flase; 47     if (s->top == MAX_SIZE-1){ 48         flag = True; 49  } 50     
51     return flag; 52 }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM