各种数据结构定义的C语言描述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
//2.2.1顺序表的C语言描述
#define MAXSIZE 100
typedef struct{
int data[MAXSIZE];
int last;
}Sequenlist;
//2.3.2单链表的C语言描述(注意循环链表) typedef int datatype;
typedef struct node{
datatype data;
struct node *next;
}linklist;
linklist *head;
//2.3.5双链表的C语言描述
typedef struct dnode{
datatype data;
struct dnode *prior,*next;
}dlinklist;
//3.2.1顺序栈的C语言描述
typedef struct{
datatype data[MAXSIZE];
int top;
}seqstack;
//3.3链式栈的C语言描述
typedef struct snode{
datatype data;
struct snode *next;
}linkstack;
//4.2.1顺序队列的C语言描述(注意4.2.3循环队列的定义和基本操作)
typedef struct{
datatype data[MAXSIZE];
int front;
int rear;
}seqqueue;
//4.3.1链队列的C语言描述
typedef struct qnode{
datatype data;
struct qnode *next;
}qnode_linklist;
typedef struct {
qnode_linklist *front ,*rear; }linkqueue;
//5.2.1串的顺序存储的C语言定义(注意建立串时候的fflush(stdin);)
char sstr[MAXSIZE];
typedef struct{
datatype data[MAXSIZE];
int len;
}sstring;
//5.2.2链串的类型描述
typedef struct linknode{
char data;
struct linknode *next;
}linkstring;
//5.2.3堆串的描述
typedef struct{
char *ch;
int length;
}hstring;
//7.3.2二叉链表结点的C语言描述
#define MAX_SIZE 100
typedef struct btnode{
datatype data;
struct btnode *lchild,*rchild;
}btnode;
//三叉链表结点的C语言描述
typedef struct btnode_3{
datatype data;
struct btonde_3 *lchild,*rchild,*parent; }btnode_3;
//线索二叉树的C语言描述
typedef struct bithrnode{
datatype data;
struct bithrnode *lchild,*rchild;
int ltag,rtag;
}bithrnode;
//7.7.1树的存储结构1、双亲表示法(顺序存储结构)
typedef struct tnode{
datatype data;
int parent;
}ptnode;
typedef struct{
ptnode node[MAX_SIZE];
int num;
}ptree;
//7.7.1树的存储结构2孩子表示法
typedef struct listnode{
int childno;
struct listnode *next;
}ctnode;
typedef struct{
datatype data;
ctnode *firstchild;
}hnode;
typedef struct{
hnode nodes[MAX_SIZE];
int root;
int num;
}clinklist;
//7.7.1树的存储结构3.孩子兄弟表示法(二叉树表示法)
typedef struct csnode{
datatype data;
struct csnode *firstchild,*nextchild;
}csnode;
//8.2.1图的邻接矩阵
typedef char elemtype;
typedef struct{
elemtype vex[MAXSIZE];
int edge[MAXSIZE][MAXSIZE];
int e;
int n;
}adjgraph;
//8.2.2图的邻接表节点及其类型定义如下:typedef struct graph_linknode{
int adjvex;
char info;
struct linknode *firstarc;
}graph_linknode;
typedef struct vexnode{
char data;
graph_linknode *firstarc;
}vexnode;
typedef struct{
vexnode adjlist[MAXSIZE];
int n,e;
}algraph;
//9.1排序的数据结构定义#define sort_maxsize 10 typedef int keytype; typedef struct{
keytype key;
}recordtype;
recordtype r[sort_maxsize]; int main(){
return 0;
}