1.栈(先进后出)-顺序结构
typedef int DataType;
21
22 typedef struct
23 {
24 DataType data[MAX];
25 int top;
26 }Stack;
27
28 Status InitStack(Stack *S)
29 {
30 S->top = -1;
31 return TRUE;
32 }
2.栈(链表结构)
新建时需要给指针分配空间
typedef int DataType;
typedef struct node
{
DataType data;
struct node *next;
}Node;
typedef Node *LStack;
3.队列(先进先出)-顺序结构
typedef int DataType;
typedef struct
{
DataType data[MAX];
int front;
int rear;
}Queue;
4,。链表队列
front永远指向表头不变。
typedef int QElemType; /* QElemType类型根据实际情况而定,这里假设为int */
typedef struct QNode /* 结点结构 */
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct /* 队列的链表结构 */
{
QueuePtr front,rear; /* 队头、队尾指针 */
}LinkQueue;
5.二叉树-普通结构
typedef char TElemType; /* 树结点的数据类型,目前暂定为整型 */
16 typedef TElemType SqBiTree[MAX_TREE_SIZE]; /* 0号单元存储根结点 */
17
18 typedef struct
19 {
20 int level,order; /* 结点的层,本层序号(按满二叉树计算) */
21 }Position;
22
23 TElemType Nil='#'; /* 设字符型#为空 */
6.二叉树-链表结构
typedef char TElemType;
17 TElemType Nil=' '; /* 字符型以空格符为空 */
18
19
20 typedef struct BiTNode /* 结点结构 */
21 {
22 TElemType data; /* 结点数据 */
23 struct BiTNode *lchild,*rchild; /* 左右孩子指针 */
24 }BiTNode,*BiTree;
25