![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构(C语言)
文章平均质量分 77
xueda120
程序员
展开
-
抽象数据类型的表示与实现
/* f.c 用函数指针代替C++的引用参数 */ #include<stdio.h> void fa(int a) /* 在函数中改变a,将不会带回主调函数(主调函数中的a仍是原值) */ { a=5; printf("在函数fa中:a=%d\n",a); } void fb(int *a) /* a为指针类型,在函数中改变*a,改变后的...原创 2013-11-22 14:42:32 · 283 阅读 · 0 评论 -
有向图的十字链表存储
/* c7-3.h 有向图的十字链表存储表示 */ #define MAX_VERTEX_NUM 20 typedef struct ArcBox { int tailvex,headvex; /* 该弧的尾和头顶点的位置 */ struct ArcBox *hlink,*tlink; /* 分别为弧头相同和弧尾相同的弧的链域 */ InfoType *i...原创 2013-12-07 22:56:18 · 365 阅读 · 0 评论 -
图的邻接表存储
/* c7-2.h 图的邻接表存储表示 */ #define MAX_VERTEX_NUM 20 typedef enum{DG,DN,AG,AN}GraphKind; /* {有向图,有向网,无向图,无向网} */ typedef struct ArcNode { int adjvex; /* 该弧所指向的顶点的位置 */ struct ArcNode *n...原创 2013-12-07 22:53:26 · 209 阅读 · 0 评论 -
图的邻接矩阵存储
/* algo7-1.c 调用算法7.7、7.8 */ #include"c1.h" #define MAX_NAME 2 /* 顶点字符串的最大长度+1 */ typedef char ElemType[MAX_NAME]; typedef ElemType TElemType; #include"c6-5.h" typedef int InfoType; ty...原创 2013-12-07 22:46:07 · 237 阅读 · 0 评论 -
树的二叉链表(孩子-兄弟)存储
/* c6-5.h 树的二叉链表(孩子-兄弟)存储表示 */ typedef struct CSNode { TElemType data; struct CSNode *firstchild,*nextsibling; }CSNode,*CSTree; /* bo6-5.c 树的二叉链表(孩子-兄弟)存储(存储结构由c6-5.h定义)的基本操作(1...原创 2013-12-06 23:46:49 · 824 阅读 · 0 评论 -
树的双亲表存储
/* c6-4.h 树的双亲表存储表示 */ #define MAX_TREE_SIZE 100 typedef struct { TElemType data; int parent; /* 双亲位置域 */ } PTNode; typedef struct { PTNode nodes[MAX_TREE_SIZE]; int n; ...原创 2013-12-06 23:44:49 · 168 阅读 · 0 评论 -
二叉树的二叉线索存储
/* c6-3.h 二叉树的二叉线索存储表示 */ typedef enum{Link,Thread}PointerTag; /* Link(0):指针,Thread(1):线索 */ typedef struct BiThrNode { TElemType data; struct BiThrNode *lchild,*rchild; /* 左右孩子指针 */...原创 2013-12-06 21:31:51 · 125 阅读 · 0 评论 -
二叉树的顺序存储
/* c6-1.h 二叉树的顺序存储表示 */ #define MAX_TREE_SIZE 100 /* 二叉树的最大结点数 */ typedef TElemType SqBiTree[MAX_TREE_SIZE]; /* 0号单元存储根结点 */ typedef struct { int level,order; /* 结点的层,本层序号(按满二叉树计算) */...原创 2013-12-06 18:00:46 · 583 阅读 · 0 评论 -
串的块链存储表示
/* c4-3.h 串的块链存储表示 */ #define CHUNKSIZE 4 /* 可由用户定义的块大小 */ typedef struct Chunk { char ch[CHUNKSIZE]; struct Chunk *next; }Chunk; typedef struct { Chunk *head,*tail; /* 串的头和...原创 2013-11-29 15:31:17 · 425 阅读 · 0 评论 -
串的堆分配存储
/* c4-2.h 串的堆分配存储 */ typedef struct { char *ch; /* 若是非空串,则按串长分配存储区,否则ch为NULL */ int length; /* 串长度 */ }HString; /* bo4-2.c 串采用堆分配存储结构(由c4-2.h定义)的基本操作(15个) */ /* 包括算法4.1、4.4 *...原创 2013-11-29 15:31:01 · 339 阅读 · 0 评论 -
串的定长顺序存储表示
/* c4-1.h 串的定长顺序存储表示 */ #define MAXSTRLEN 40 /* 用户可在255以内定义最大串长(1个字节) */ typedef char SString[MAXSTRLEN+1]; /* 0号单元存放串的长度 */ /* bo4-1.c 串采用定长顺序存储结构(由c4-1.h定义)的基本操作(14个) */ /* SString是数...原创 2013-11-29 15:30:46 · 273 阅读 · 1 评论 -
顺序队列
/* c3-3.h 队列的顺序存储结构(可用于循环队列和非循环队列) */ #define MAXQSIZE 5 /* 最大队列长度(对于循环队列,最大队列长度要减1) */ typedef struct { QElemType *base; /* 初始化的动态分配存储空间 */ int front; /* 头指针,若队列不空,指向队列头元素 */ int...原创 2013-11-28 00:24:03 · 93 阅读 · 0 评论 -
单链队列
/* c3-2.h 单链队列--队列的链式存储结构 */ typedef struct QNode { QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { QueuePtr front,rear; /* 队头、队尾指针 */ }LinkQueue;...原创 2013-11-28 00:23:37 · 221 阅读 · 0 评论 -
栈的顺序存储表示
/* c3-1.h 栈的顺序存储表示 */ #define STACK_INIT_SIZE 10 /* 存储空间初始分配量 */ #define STACKINCREMENT 2 /* 存储空间分配增量 */ typedef struct SqStack { SElemType *base; /* 在栈构造之前和销毁之后,base的值为NULL */ SEle...原创 2013-11-28 00:23:17 · 270 阅读 · 0 评论 -
双向循环链表
/* c2-4.h 线性表的双向链表存储结构 */ typedef struct DuLNode { ElemType data; struct DuLNode *prior,*next; }DuLNode,*DuLinkList; /* bo2-5.c 双链循环线性表(存储结构由c2-4.h定义)的基本操作(14个) */ Status Ini...原创 2013-11-28 00:23:08 · 110 阅读 · 0 评论 -
单循环链表的表示和实现
/* bo2-4.c 设立尾指针的单循环链表(存储结构由c2-2.h定义)的12个基本操作 */ Status InitList_CL(LinkList *L) { /* 操作结果:构造一个空的线性表L */ *L=(LinkList)malloc(sizeof(struct LNode)); /* 产生头结点,并使L指向此头结点 */ if(!*L) /* 存储分配...原创 2013-11-28 00:22:39 · 118 阅读 · 0 评论 -
线性表的单链表表示和实现
/* c2-2.h 线性表的单链表存储结构 */ struct LNode { ElemType data; struct LNode *next; }; typedef struct LNode *LinkList; /* 另一种定义LinkList的方法 */ /* bo2-2.c 单链表线性表(存储结构由c2-2.h定义)的基本操作(12个) ...原创 2013-11-27 19:19:15 · 202 阅读 · 0 评论 -
无向图的邻接多重表存储
/* c7-4.h 无向图的邻接多重表存储表示 */ #define MAX_VERTEX_NUM 20 typedef enum{unvisited,visited}VisitIf; typedef struct EBox { VisitIf mark; /* 访问标记 */ int ivex,jvex; /* 该边依附的两个顶点的位置 */ str...原创 2013-12-07 23:00:22 · 612 阅读 · 2 评论