一、线性表

可用顺序存储/链式存储(链表)

链表结点分为data和next指针两部分
循环链表相对于单链表,表尾的next指针指向表头,实际上循环链表没有表头表尾

双向链表结点分为left、data、right三部分

二、栈

1、顺序存储

注意顺序存储的栈有大小size,栈顶下标top。
入栈:

算法 Push(A,item. top)
P1.[栈满?]
    IF top = size THEN (PRINT("栈满").RETURN.)
P2.[入栈]
    top = top + 1.
    A[top] = item.

2、链式存储

三、队列

1、顺序存储

需要定义以下量:

  • front: 队头 (出队位置)
  • rear: 队尾 (入队位置)
  • count:队中元素数量。
  • Size:队列长度

默认使用循环队列。
如队尾右移:rear = (rear + 1) MOD Size

2、链式存储

需要定义的量:

  • 队首指针
  • 队尾指针

注意:
对空队列进行入队操作出队后队列变成空队列,需要同时操作rear和front指针

本章中的ADL描述:

  • xAVAIL
  • 释放存储空间:AVAILx