各种数据结构定义的C语言描述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

相关文档
最新文档