数据结构
midoxinxin
做一个安静美男子 ~~~~~~~
展开
-
数据结构与算法javascript描述(一) Node.js 运行readline
数据结构与算法javascript描述node.js环境下运行 print——-console.log() putstr——readline() 这是书中代码应用到node.js环境下var readline = require('readline');var rl = readline.createInterface({ input: process.stdin, output: p原创 2015-11-04 17:56:33 · 1248 阅读 · 0 评论 -
数据结构与算法javascript描述(三) 二叉查找树 先序,中序,后续遍历
/* 实现二叉查找树 Node类 BST类*/function Node(){ this.data = data; this.left = left; this.right = right; this.show = show;}function show(){ return this.data;}function BST(){ this.转载 2015-11-09 15:03:57 · 718 阅读 · 1 评论 -
算法(三)-冒泡排序算法
冒泡算法原理:将临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。冒泡排序过程设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上”漂浮”(交换位置),如此反复进行,直至转载 2015-10-13 09:50:02 · 366 阅读 · 0 评论 -
数据结构(十)完全二叉树节点个数计算
二叉树第k层最多有2的(k-1)次方个节点第六层最多有32个节点 第五层最多有16个节点 第四层最多有8个节点 第三层最多有4个节点 第二层最多有2个节点 第一层最多有1个节点完全二叉树的叶节点只可能出现在后两层如果完全二叉树有6层,则前5层是满二叉树,总节点数目为16+8+4+2+1+8=39如果完全二叉树有7层,则前6层是满二叉树, 前六层总节点数目为32+16+8+4+2+1=6原创 2015-10-12 22:09:18 · 7177 阅读 · 0 评论 -
数据结构(九)满二叉树深度计算
答案是: log2(n+1)+1,注意是分支结点是n个 假设树有K层,所有的分枝节点都在1-(k-1)层,每层都是满的,对有1-(k-1)层,有2^(k-1)-1=n 变形后得:k=log(n+1)+1。 所以答案应该选择B。原题链接: http://www.nowcoder.com/test/question/done?tid=1752015&qid=228#summary原创 2015-10-12 22:01:57 · 3840 阅读 · 0 评论 -
数据结构(七)链表
二维数组 是数组的数组,每一行作为一个二维数组的元素(当成一个线性表来看),可以把数组看成一个顺序存储的线性表。原创 2015-10-12 23:09:26 · 377 阅读 · 0 评论 -
数据结构(八)二叉树遍历
示例1 二叉树是一种树形结构,遍历就是要让树中的所有节点被且仅被访问一次,即按一定规律排列成一个线性队列。二叉(子)树是一种递归定义的结构,包含三个部分:根结点(N)、左子树(L)、右子树(R)。根据这三个部分的访问次序对二叉树的遍历进行分类,总共有6种遍历方案:NLR、LNR、LRN、NRL、RNL和LNR。研究二叉树的遍历就是研究这6种具体的遍历方案,显然根据简单的对称性,左子树和右子树的遍原创 2015-10-12 22:30:53 · 689 阅读 · 0 评论 -
数据结构 (五)c++函数和参数传递 按值传递 按引用传递
首先我们写出一段程序,这段程序用来介绍两种传递方式的区别。includeusing namespace std;void swap1(int a,int b);void swap2(int* a,int *b);void swap3(int& a,int& b);int main(){ int a=2,b=3; swap1(a,b); cout<<"a="<<a<<endl; c原创 2015-10-19 09:47:26 · 1596 阅读 · 0 评论 -
快速排序
今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的转载 2016-07-03 15:49:39 · 338 阅读 · 0 评论