- 博客(13)
- 资源 (11)
- 收藏
- 关注
原创 数据结构----二叉排序树
结点结构/**********结点结构*********/typedef struct BTNode{ int key; struct BTNode *lchild; struct BTNode *rchild;}BiNode,*BiTree;查找关键字/********查找关键字********/BiNode* BSTSearch(BiTree bt, int k...
2018-09-15 17:57:03 282
原创 数据结构----查找1(顺序查找,折半查找)
#include <stdio.h>#define maxSize 100#define num 4int R[maxSize] = { 0 };int count = 0;/*********输入数据*********/void Indata(){ printf("请输入整数数据(按回车键停止输入):"); int i = 0; char ch; while ...
2018-09-15 15:32:26 1352
原创 数据结构----归并排序(C语言)
归并排序与基于交换、选择等排序的思想不一样。“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表含有n个记录,则可以看成是n个有序的子表,每个表长度为1,然后两两归并,得到(n/2)个长度为2或1的有序表;再两两归并,如此重复,直到合并成一个长度为n的有序表为止。这种排序方法称为2-路归并排序。时间复杂度为O(nlog2n)#include <stdio.h&...
2018-09-15 09:56:07 480
原创 数据结构----选择排序(简单选择排序、堆排序,C语言)
选择排序的基本思想:每一趟(例如第i趟)在后面n-i+1个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选简单选择排序时间复杂度为O(n2)/*********简单选择排序**********/void SelectSort(int r[], int n){ int i, j, temp;; int min; ...
2018-09-14 15:34:03 623
原创 数据结构----交换排序(冒泡排序、快速排序,C语言)
冒泡排序时间复杂度为O(n2)/*************冒泡排序*************/void BubbleSort(int r[], int n){ int i, j,flag,temp; for (i = n - 1; i >= 1; i--) { flag = 0; for (j = 1; j <= i; j++) { if (r[j...
2018-09-14 10:32:46 714
原创 数据结构---插入类排序(直接插入排序、折半插入排序、希尔排序,C语言)
插入类排序有直接插入排序、折半插入排序、希尔排序直接插入排序算法思想:每趟将一个待排序的关键字按照其值的大小插入到已经排好的部分有序序列的适当位置上,直到所有待排关键字都被插入到有序序列中为止。工作流程:1)查找出待插入元素应该被插入的位置 2)给插入位置腾出空间,将待插入元素复制到表中的插入位置。是边比较边移动元素的。本算法的时间复杂度为:O(n2)#includ...
2018-09-13 10:53:50 2146
转载 数据结构----排序基础知识
排序算法分类1.插入类的排序在一个有序的序列中,插入一个新的关键字。属于这类排序的有:直接插入排序、折半插入排序、希尔排序2.交换类的排序每一趟排序,都通过一系列的交换,让一个关键字排到它最终的位置上。属于这类排序的有:起泡排序、快速排序3.选择类的排序每一趟排序都选出一个最小(最大)的关键字,把它和序列中的第一个(或最后一个)关键字交换。属于这类排序的有简单选择排序、堆排...
2018-09-11 15:31:25 337
原创 经典小题目2(进制转换,递归真是个好东西啊!C语言)
递归真是个好东西!!!进制转换:十进制---->R进制除基取余,倒序排列1.十进制转二进制/**********十进制转二进制**********/void convert1(int n){ if (n == 0) return; else convert1(n / 2); printf("%d", n % 2);}2.十进制转八进制还是...
2018-09-08 09:28:17 922
原创 经典小题目1(斐波拉契数列、杨辉三角形,C语言)
一些经典的数据结构的程序,想到了就写一下1.斐波拉契数列递归写的,比较简单#include <stdio.h>#include <math.h>int fibonacci(int n){ int f1 = 1, f2 = 1; int fn; if (n <= 2) return 1; else return fibonac...
2018-09-07 17:50:06 639
原创 数据结构---图的邻接表(创建、打印、深度优先遍历,广度优先遍历C语言)
当一个图为稀疏图时,使用邻接矩阵会浪费大量存储空间。邻接表法结合了顺序存储和链式存储方法,减少了不必要的浪费。参照博文:https://blog.csdn.net/qq_39630587/article/details/77409869邻接表1)对图G的每个顶点vi建立一个单链表,第i个单链表中的结点表示依附于顶点vi的边(对于有向图则是以顶点vi为尾的弧)。这个单链表就称为顶点v...
2018-09-07 08:51:53 33119 16
原创 数据结构---图的邻接矩阵(创建,打印,深度优先遍历,广度优先遍历,C语言)
邻接矩阵法 用一维数组图中顶点的信息,用一个二维数组存储图中边的信息(各顶点之间的邻接关系)。存储顶点之间邻接关系的二维数组称为邻接矩阵。 结点数为n的图G=(V,E)的邻接矩阵A是n*n的,将G的顶点编号为v1,v2,......vn。若(vi,vj)∈E,则A[i][j]=1,否则A[i][j]=0。 对于带权图而言,若顶点vi,vj之间有边相连,则邻接矩阵...
2018-09-06 11:39:45 46038 9
原创 数据结构---二叉树(2)(创建、前序+中序+后序+层序遍历、求深度、所有叶子节点、路径)
1.先序创建二叉树,再遍历(前序、中序、后序、层序)2.自由输入字符,空节点由“#”符号代替3.求二叉树的高4.找到树中所有叶子节点5.叶子节点到根节点的路径代码如下:#include <stdio.h>#include <malloc.h>#define maxSize 100/************二叉树一个结构体,数据是字符型***...
2018-09-04 20:12:42 746
原创 数据结构---二叉树(C语言)
二叉搜索树的建立二叉树的前序遍历,中序遍历,后序遍历。求树的高度,求最大值上代码:#include <stdio.h>#include <malloc.h>/********定义结点结构体*********/typedef struct node { int data; struct node* lchild; struct node* rc...
2018-09-02 21:03:38 392
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人