数据结构(C语言版)
数据结构基础
何处望天明CS
这个作者很懒,什么都没留下…
展开
-
数据结构——各种排序算法
各种排序算法#include<iostream>#include<stdlib.h>using namespace std;typedef int ElemType;//直接插入排序 void InsertSort(ElemType A[], int n){ int i, j; for(i = 2; i <= n; i++) //依次从第二个元素开始插入到前面已排序的元素 { if(A[i] < A[i-1]) { A[0] =原创 2020-12-16 16:36:39 · 127 阅读 · 0 评论 -
数据结构——邻接矩阵创建无向图,图的深度遍历
1.完整代码#include<iostream>using namespace std;#define OK 1#define ERROR 0#define MaxInt 0 #define MVNum 100 //最大顶点数#define Max 20typedef char VerTexType; //顶点的数据类型为字符型 typedef int ArcType; //权值类型为整形typedef int Status;typedef str原创 2020-07-07 16:46:55 · 2324 阅读 · 0 评论 -
数据结构——哈夫曼树的创建
1. 算法思想构造哈夫曼树算法思路:1.初始化HT[1…2n-1], lch=rch=parent=0.2.输入n个叶子结点,置于HT[1…n]的weight(权值)。3.进行n-1次合并,依次产生n-1个结点HT[i], i = n+1…2n-1;a) 在HT[1…i-1]中选两个未被选过(从parent==0的结点中选)的weight最小的两个结点HT[s1]和HT[s2], s1,s2为两个最小结点的下标b) 修改HT[s1]和HT[s2]的parent值:HT[s1].patent=i,原创 2020-07-03 14:31:34 · 3676 阅读 · 3 评论 -
数据结构——二叉树的其他算法(复制、求深度、求结点数等)
1.完整代码#include<iostream>#include<malloc.h> using namespace std;#define TElemType int#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef struct BiTNode{ TElemType data; struct BiTNode *lch原创 2020-06-27 16:13:40 · 536 阅读 · 0 评论 -
数据结构——二叉树的中序非递归遍历和层次遍历
一,二叉树的中序非递归遍历(借助顺序栈实现)1.完整代码#include<iostream>#include<malloc.h>using namespace std;#define TElemType int#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef struct BiTNode{ TElemType data原创 2020-06-24 17:18:01 · 451 阅读 · 0 评论 -
数据结构——二叉树的创建,先序、中序、后序遍历
1.完整代码#include<iostream>#include<malloc.h>using namespace std;#define TElemType int#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2typedef struct BiTNode{ TElemType data; struct BiTNode *lchi原创 2020-06-22 15:04:36 · 384 阅读 · 0 评论 -
数据结构——链队列算法和操作
1完整代码#include<iostream>#include<malloc.h>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2 typedef int QElemType;typedef int Status;typedef struct Qnode{ QElemType data;原创 2020-06-17 15:37:04 · 313 阅读 · 0 评论 -
数据结构——循环队列算法和操作
1.完整代码#include<iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXQSIZE 100 //最大队列长度 typedef int QElemType;typedef int Status;typedef struct{ QElemType *base;原创 2020-06-07 21:13:06 · 359 阅读 · 0 评论 -
数据结构——链栈算法和操作
1.完整代码#include<iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0typedef int SElemType;typedef int Status;typedef struct StackNode{ SElemType data; struct StackNode *next;}StackNode, *LinkS原创 2020-06-07 21:10:04 · 294 阅读 · 0 评论 -
数据结构——顺序栈算法和基本操作
本次是采用大程序结构,涉及多个代码段1.ci.h——包括一些头文件和预定义//c1.h#include<string.h>#include<ctype.h>#include<malloc.h>#include<limits.h>#include<stdio.h>#include<stdlib.h>#include<io.h>#include<math.h>#include<sys/ti原创 2020-06-07 21:03:51 · 390 阅读 · 0 评论 -
有序表的合并——链表实现
完整代码#include <iostream>using namespace std; #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define MAXSIZE 100#define Status int#define ElemType inttypedef struct LNode{原创 2020-05-29 14:56:38 · 588 阅读 · 0 评论 -
有序表合并——顺序表实现
#include <cstdio>#include <cstdlib>#include <algorithm>#include <malloc.h>#include <iostream> using namespace std;#define LIST_INIT_SIZE 100 //线性表存储空间初始分配量#define LISTINCREMENT 10 //线性表存储空间的分配增量#define OK 1#define原创 2020-05-28 14:34:35 · 1056 阅读 · 0 评论 -
线性表合并——合并两个集合
现有两个线性表LA和LA分别表示两个集合A和B,合并为一个新的集合A=A∪B.完整代码如下:#include <cstdio>#include <cstdlib>#include <algorithm>#include <malloc.h>#include <iostream> using namespace std;#define LIST_INIT_SIZE 100 //线性表存储空间初始分配量#define LISTIN原创 2020-05-27 15:46:04 · 4890 阅读 · 6 评论 -
数据结构——顺序表算法及完整操作
#include <cstdio>#include <cstdlib>#include <algorithm>#include <malloc.h>#include <iostream> using namespace std;#define LIST_INIT_SIZE 100 //线性表存储空间初始分配量#define LISTINCREMENT 10 //线性表存储空间的分配增量#define OK 1#define原创 2020-05-27 08:34:52 · 876 阅读 · 0 评论 -
数据结构——单链表算法及完整操作
#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#define Status int#define ElemType intusing namespace std;typedef struct LNode{ ElemType data; struct LNode * next;}LNode, *LinkLi原创 2020-05-23 19:58:36 · 1082 阅读 · 0 评论 -
数据结构常用算法
1.3 最大子列和问题//分治法int Max3( int A, int B, int C ){ /* 返回3个整数中的最大值 */ return A > B ? A > C ? A : C : B > C ? B : C;} int DivideAndConquer( int List[], int left, int right ){ /* 分治法求Li...原创 2020-05-04 19:26:21 · 190 阅读 · 0 评论