
7.Data Structure
memewry
hi
展开
-
几种常见的排序 Java版
一:冒泡排序 大学课程里面第一个排序算法,它的基本思想是每一个不断的遍历数组,每次遍历总是把最大的那个数找出来放到数组的尾部。经过n轮遍历之后,就排序完成。 /** * 实现冒泡泡排序 * @return void * @param int[] * 它的原理是每一次都把最大的数放到最后面 * */ @SuppressWarnings("unused") priv转载 2012-04-18 10:41:42 · 420 阅读 · 0 评论 -
二叉查找树(二叉排序树)的详细实现C版
1、序 详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继 2、二叉查找树简介 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排转载 2012-04-20 20:30:07 · 713 阅读 · 0 评论 -
二叉排序树的查找与遍历C版
/* * 构造一颗二叉查找树,实现树的插入、删除等基本操作 * */ #include #include typedef struct node { int count; //记录某个元素出现的次数 int data; //数据 struct node * left; struct node * right; }Node,*PNode; int array[100转载 2012-04-20 20:28:32 · 2456 阅读 · 0 评论 -
树的常见操作Java版
转:http://memewry.iteye.com/blog/1490721 据说面试中树考到的概率很高 package com.gengu.树; import java.util.Queue; import java.util.Stack; import java.util.concurrent.ConcurrentLinkedQueue; import org.junit.T...原创 2019-12-12 14:40:11 · 681 阅读 · 0 评论 -
Hash表实现 C++
转:http://blog.youkuaiyun.com/kay_sprint/article/details/6703450 哈希表的几个概念: 映像:由哈希函数得到的哈希表是一个映像。 冲突:如果两个关键字的哈希函数值相等,这种现象称为冲突。 处理冲突的几个方法: 1、开放地址法:用开放地址处理冲突就是当冲突发生时,形成一个地址序列,沿着这个序列逐个深测,直到找到一个“空”的转载 2012-07-12 21:29:21 · 504 阅读 · 0 评论 -
写了个循环队列
就当找工作练手了 #include using namespace std; struct Queue { int * array; int front; int rear; }; void init(Queue* queue) { queue->array = (int*)malloc(sizeof(int)*8); queue->front = 0;原创 2012-08-10 13:47:28 · 690 阅读 · 0 评论 -
如何判断一棵树是否为二叉排序树 C版
转自:http://blog.youkuaiyun.com/hackbuteer1/article/details/6561872 思路:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 递归遍历就可以了,反正就是左孩子的key比根节点的key小,右孩子的key比根节点的key大,转载 2012-04-20 21:23:38 · 7016 阅读 · 3 评论 -
如何求一棵二叉树深度和叶子数(递归)C++版
(1)求一棵二叉树的深度用递归比较简单,求一棵二叉树的深度可以递归定义为: 若为空树,则深度为0; 否则,比较它的左子树的深度和它的右子树的深度,如果左子树的深度大于右子树,则树的深度=左子树+1,反之,则树的深度=右子树+1; 源程序如下: template int BiTree::countHighOfBiTree(BiTreeNode *currentNod转载 2012-04-29 01:04:55 · 2655 阅读 · 0 评论