线性表
1. 顺序存储结构
define MAXSIZE 20
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}SqList
2. 链式存储结构
单链表
typedef struct Node
{
Elemtype data;
struct Node *next;
}Node;
typedef struct Node *LinkList; //定义LinkList *类型
3. 栈
typedef int SElemType;
typedef struct
{
SElemType data[MAXSIZE];
int top; // 栈顶指针,指向栈顶元素,空栈时为-1
}SqStack;
栈的操作,出栈(pop)/入栈(push)
栈的应用:
- 递归,斐波那契数
- 四则运算表达式求值
4. 队列
队列的顺序存储结构
typedef struct
{
QElemType data[MAXSIZE];
int front; // 头指针指向队列头元素
int rear; // 尾指针,如果队列不为空,指向队尾元素的下一个
}
当front等于rear时队列为空
队列的链式存储结构
typedef int QElemType;
typedef struct QNode // 节点结构
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct // 队列的链表结构
{
QueuePtr front,rear; // 队头、队尾指针
}LinkQueue;
队列的队头指针指向队列的头节点,队尾指针指向终端节点。