数据结构
文章平均质量分 68
xw_njust_ecjtu
沉淀
展开
-
深入理解linux内核list_head的实现
转自:http://www.54xue.com/w/04/n-29304.html 注:文章很长,比喻恰当比较好理解。感谢原创作者。---》蓝色为本人增加。前言:在linux源代码中有个头文件为list.h.很多linux下的源代码都会使用这个头文件,它里面定义了一个结构,以及定义了和其相关的一组函数,这个结构是这样的: struct list_head{转载 2013-08-26 17:37:08 · 1110 阅读 · 0 评论 -
归并排序
sho#include #include #include "vld.h"using namespace std;void merge_sort_recursive(int *A,int low ,int high);void merge_array(int *A,int low ,int mid ,int high);void merge_sort(int *A,int n)原创 2014-05-26 21:42:31 · 488 阅读 · 0 评论 -
hash_set实现
hash_set的实现是由h原创 2014-04-09 22:08:00 · 631 阅读 · 0 评论 -
编程之美-先序中序 重建二叉树
#include #include #include "vld.h"using namespace std;struct Node{ Node *left; Node *right; char val; Node(char ch) { left = NULL; right = NULL; val = ch; }};void pre_order(Node原创 2014-05-03 22:59:36 · 575 阅读 · 0 评论 -
先序中序转后序
#include #include using namespace std;string pre_in_to_post(string str_pre,string str_inorder,string left,string right,string &result);int main(){ string str_pre,str_in,str_post; str_pre = "原创 2014-05-03 20:07:12 · 786 阅读 · 0 评论 -
trie树
来着wiki百科的介绍trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。原创 2014-04-16 20:40:42 · 559 阅读 · 0 评论 -
单链表总结
个人总结,以及借鉴他人代码,有些代码来着平时积累,不记得出处,请见谅。欢迎各位转载,希望对大家有用!如有错误欢迎真正,谢谢!struct node { int val; node *next;};//链表翻转static void Reverse(struct node* headRef) { struct node* result = NULL;//首节点为空 s原创 2013-11-20 22:24:32 · 996 阅读 · 0 评论 -
BF与KMP算法
BF(Brute Force)算法:BF算法是普通的模式匹配算法。将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。这个方法最大的特点是回溯!以下为俩种实现:/*从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续字原创 2013-11-20 15:29:33 · 1311 阅读 · 0 评论 -
冒泡排序
//共需length-1大趟比较//内部的比较次数为length-1-i//大的元素向上冒!void bubble_sort(int *array,int length){ int temp; for(int i = 0;i < length-1 ; i++) for(int j = 0;j< length-1-i ;j++) { i原创 2013-10-23 10:08:35 · 584 阅读 · 0 评论 -
直接插入排序
直接插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。主要分为俩部分:1,排好序的 2,未排好序的第一个元素。步骤:1,未排好序的第一个元素保存起来2,从为排好序的前一个元素(即排好序的元素的末尾)开始向前搜索第一个比未排好序的元素小的位置,并且元素同原创 2013-10-27 16:13:22 · 524 阅读 · 0 评论 -
希尔排序(shell)
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。原理:希尔排序属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序。(其中增量值即为分区个数。)以下这种方式较为好理解:#include #include //对单个组排序int SortGroup(in原创 2013-10-27 15:54:30 · 550 阅读 · 0 评论 -
二叉树中两个节点的最近公共父节点
二叉树中两个节点的最近公共父节点,转载 2014-09-02 20:51:17 · 3273 阅读 · 0 评论