![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
i_wooden
这个作者很懒,什么都没留下…
展开
-
链表
//带有头结点的链表的C实现#include #include typedef struct Node{ int data;//数据域 struct Node * next;//指针域}Node;/*************************************************************************函数名称:Create*函数功能原创 2013-09-21 13:31:30 · 1015 阅读 · 0 评论 -
冒泡排序
//冒泡排序的C实现#include void swap(int *a,int *b){ int temp = *a; *a = *b; *b = temp;}void pop_sort(int a[] , int p, int r){ int i,j; for(i = r; i > p ; i--)//每一遍,将最大的数字放在i的位置上 { for(j = p ;原创 2013-09-20 21:17:07 · 736 阅读 · 0 评论 -
合并排序
//合并排序的C实现#include #include #define INT_MAX 0x7fffffffvoid merge(int *a,int p,int q,int r){ int n1 = q-p+1; int n2 = r-q; int *L = malloc(sizeof(int)*(n1+1)); int *R = malloc(siz原创 2013-09-20 21:15:34 · 788 阅读 · 0 评论 -
二叉树
//二叉树生成与中序遍历的C实现#include struct Tree{ Tree * father; //指向该节点的父节点 int value; //节点的值 Tree * left,* right; //分别指向该节点的左子树和右子树};//构造二叉树,在二叉树中插入节点void tree_insert_node(Tree*& t, int value){原创 2013-09-20 21:29:58 · 691 阅读 · 0 评论 -
KMP算法
//KMP算法的C++实现#include #include using namespace std;/******************求子串的匹配数组**********************/int *pre(string &sub){ int m = sub.length(); int *k = new int[m]; k[0] = -1; int q = -原创 2013-09-20 21:23:00 · 644 阅读 · 0 评论 -
插入排序
#include void insert_sort(int a[],int p,int r);int main(){ int a[23] = {23,35,456,7,456,576,456,45,56,67,56,45,45,576,45,7,45,567,45,45,45,56,45}; int i; insert_sort(a,0,22); for(i = 0; i < 2原创 2014-01-03 19:40:22 · 702 阅读 · 0 评论 -
并查集算法介绍
我们在一些应用当中,经常会遇到将n个不同的元素分成一组不相交的集合,例如某省调查城镇交通状况,得到现有城镇道路统计表,当我们知道每条道路直接连通的城镇时,问最少还需要建设多少条道路才能使全省任何两个城镇间都可以实现交通。类似这种应用,经常需要进行两种特别的操作:寻找包含给定元素的唯一集合和和合并两个集合。这里,我们介绍如何维护一种被称为“并查集”的数据结构来实现这些操作。在此文中,我们综合了网原创 2015-08-09 18:57:58 · 4579 阅读 · 3 评论 -
快速排序的C语言实现
快速排序方法对整数序列操作的一种C语言实现目标给定一个长度为n的整数序列,将序列从小到大进行排序原理从序列中任选一个值,将原有序列划分为两个子序列,其中,左侧序列中的值均小于该选出的值,右侧序列中的值均大于或者等于该选中的值,该值位于两个子序列交界(既不属于左侧、也不属于右侧);分别对左侧、右侧的子序列用同样的方法进行排序;将两个子序列以及中心位置的值进行合并,获得最终排序后的结果。实现#i原创 2017-11-27 00:01:48 · 4060 阅读 · 1 评论