-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.h
103 lines (75 loc) · 2.13 KB
/
common.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//common.h
//[2014/12/11]
//xiaopo
#ifndef COMMON_H_
#define COMMON_H_
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
//常用工具集
int gcd(int m, int n); //求两个整数的最大公约数
//LinkList
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode* next;
}LNode, *LinkList;//稍微修改一下,把LinkList改为指针型
//linklist* CreateLinklist(void);//改为下面的
//Status init_linklist(LinkList *L); //不要改成这种,因为它不像是STL那样是一种纯粹的算法,应用于容器。
Status InitLinkList(LinkList *L); //改为这种,首字母也不要小写,因为它可以独挡一面,并非属于某类或某结构体。
//int InsertIntoLinlist(linklist *L, int x);//tail
//int PrintLinklist(linklist* L);//改为下面的
Status TraverseLinkList(LinkList L, Status (*Visit)(ElemType e));
Status PrintLinkListElemData(ElemType e);
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
//BiTree
typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTree * lchild;
struct BiTree * rchild;
} BiTNode,*BiTree;
//按照先序顺序输入二X树中结点的值(一个字符),递归建立二X树,空格字符表示空树,
//构造二X链表表示的二X树T。
Status CreateBiTree(BiTree *T);
Status PreOrderTraverse(BiTree T, Status(* Visit)(TElemType e)); //前序遍历
Status InOrderTraverse(BiTree T, Status(* Visit)(TElemType e)); //后序遍历
//访问函数
Status PrintTElemData(TElemType e);
//Stack
typedef int SElemType;
typedef struct SeqStack{
SElemType *base;
SElemType *top;
int stacksize;
} SeqStack;
Status InitStack(SeqStack *S);
Status Push(SeqStack *S, SElemType e);
Status Pop(SeqStack *S);
Status StackEmpty(SeqStack S);
//LinkStack
typedef int SElemType;
typedef struct LStackNode{
SElemType data;
struct LStackNode* next;
}SNode, *LinkStack;
Status InitLinkStack(LinkStack *S);
//Queue
#define MAX_QUEUE_SIZE 100
typedef int QElemType;
typedef struct Queue{
int data[MAX_QUEUE_SIZE];
int front;
int rear;
}Queue;
Status InitQueue(Queue *Q);
Status EnQueue(Queue *Q, QElemType q);
QElemType DeQueue(Queue *Q);
QElemType GetQueue(Queue *Q);
#endif // COMMON_H_