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

发布 2019-08-19 14:04:40 阅读 4722

#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;

C数据结构C示例

目录。1.表达式 2 语句 2 圆括号。方括号。花括号。1 计算两点间的距离平方。a点坐标 x1,y1 和b点坐标 x2,y2 x1 x2 x1 x2 y1 y2 y1 y2 注 c 中的乘号是 没有平方符号,因此没有 x1 x2 2,而应该写作 x1 x2 x1 x2 2 数学表达式的正确表达 1...

数据结构中各种排序算法比较

1快速排序 quicksort 快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。1 如果不多于1个数据,直接返回。2 一般选择序列最左边的值作为支点数据。3 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。4 对...

c数据结构课程设计

重庆大学信息科学与工程学院。实验报告。课程名称 数据结构。实验名称 宿舍管理查询软件。专业 计算机科学与技术。班级 姓名 时间 2011年7月1日。1 实验内容。1 任务 为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求 a.采用交互工作方式。b.建立数据文件 数据文件按关键字 姓名 学号 房号...