各类数据结构定义

线性表的定义

顺序表

// 静态分配
#define MaxSize 100
typedef struct {
	ElemType data[MaxSize];
	int length;
}SqList;

// 动态分配
#define InitSize 100
typedef struct {
	ElemType *data;
	int MaxSize,length;
}SqList;

// L.data = (ElemType*)malloc(sizeof(ELemType)*InitSize)

单链表

typedef struct LNode{
	ElemType data;
	struct LNode *next;
}LNode, *LinkList;

双链表

typedef struct DNode {
	ElemType data;
	struct DNode *prior, *next;
}DNode, *DLinkList;

静态链表

#define MaxSize 100
typedef struct {
	ElemType data;
	int next;
}SLinkList[MaxSize];

栈的定义

顺序栈

#define MaxSize 100
typedef struct {
	ElemType data[MaxSize];
	int top;
} SqStack;

链栈

typedef struct Linknode {
	ElemType data;
	struct Linknode *next;
} *LiStack;

队列

顺序队列

#define MaxSize 100
typedef struct {
	ElemType data[MaxSize];
	int front, rear;
}SqQueue;

链队列

typedef struct LinkNode {
	ElemType data;
	struct LinkNode, *next;
}LinkNode;

typedef struct {
	LinkNode *front, *rear;
}LinkQueue;

二叉树

typedef struct BiTNode {
	ElemType data;
	struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

线索二叉树

typedef struct ThreadNode {
	ElemType data;
	struct ThreadNode *lchild, *rchild;
	int ltag, rtag;
}ThreadNode, *ThreadTree;

双亲表示法

#define MAX_TREE_SIZE 100
typedef struct {
	ElemType data;
	int parent;
}PTNode;
typedef struct {
	PTNode nodes[MAX_TREE_SIZE];
	int n;
}PTree;

孩子兄弟表示法

typedef struct CSNode {
	ElemType data;
	struct CSNode *firstchild, *nextsibling;
}CSNode, *CSTree;

并查集

#define SIZE 100
int UFSets[SIZE];

邻接矩阵

#define MaxVertexNum 100
typedef struct VertexType;
typedef struct EdgeType;
typedef struct {
	VertexType Vex[MaxVertexNum];
	EdgeType Edge[MaxVertexNum][MaxVertexNum];
	int vexnum, arcnum;
}MGraph;

邻接表

#define MaxVertexNum 100
typedef struct ArcNode {
	int adjvex;
	struct ArcNode *next;
	// InfoType info;
}ArcNode;
typedef struct VNode {
	VertexType data;
	ArcNode *first;
}VNode, AdjList[MaxVertexNum];
typedef struct {
	AdjList vertices;
	int vexnum, arcnum;
}ALGraph;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值