基本数据结构主要包括:栈、队列、链表和有根树。

10.1 栈和队列
栈和队列都是动态集合,且在其上进行DELETE操作所移除的元素时预先设定的。在栈中,被删除的是最近插入的元素:栈实现的是一种后进先出(LIFO)策略。队列实现的是一种先进先出(FIFO)策略。

栈上的INSERT操作称为压入(PUSH),无参数的DELETE操作称为弹出(POP)。栈操作的代码非常简单:

 1 typedef struct {
 2     int A[MAXN];
 3     int top;
 4 } Stack_st;
 5 
 6 int StackIsEmpty(Stack_st *S) {
 7     if (S->top == 0)
 8         return 1;
 9     return 0;
10 }
11 
12 void Push(Stack_st *S, int x) {
13     if (S->top+1 < MAXN) {
14         S->top = S->top + 1;
15         S->A[S->top] = x;
16     }
17 }
18 
19 int Pop(Stack_st *S) {
20     if ( StackIsEmpty(S) ) {
21         perror("underflow\n");
22         return -1;
23     } else {
24         --S->top;
25         return S->A[S->top+1];
26     }
27 }
View Code

相关文章:

  • 2021-12-03
  • 2021-08-24
  • 2022-12-23
  • 2021-12-05
  • 2022-01-05
  • 2021-11-21
  • 2022-02-21
猜你喜欢
  • 2021-04-01
  • 2022-02-06
  • 2021-12-01
  • 2022-12-23
  • 2021-09-25
  • 2021-05-23
  • 2022-12-23
相关资源
相似解决方案