
【data structure】
文章平均质量分 88
luyuncsd123
这个作者很懒,什么都没留下…
展开
-
数据结构-->二叉树遍历应用
1、查询二叉树中某个结点 Status Precorder(BiTree T,ElemType x,BiTree &p){ }2、统计二叉树中叶子结点的个数 算法思想:先序,后序,中序都可以,在遍历中查找叶子结点,并计数。 需要添加一个计数的参数,并将算法中访问结点的操作改为:若是叶子,则计数器增1.函数传递3、二叉树的深度 (后序遍历)原创 2013-05-18 22:12:13 · 966 阅读 · 0 评论 -
链表19个问题
最近在复习数据结构,想把数据结构里面涉及的都自己实现一下,完全是用C语言实现的。自己编写的不是很好,大家可以参考,有错误希望帮忙指正,现在正处于编写阶段,一共将要实现19个功能。到目前我只写了一半,先传上来,大家有兴趣的可以帮忙指正,谢谢 每天都会把我写的新代码添加到这个里面。直到此链表完成。?#include "stdafx.h"#includ转载 2014-07-28 18:17:09 · 825 阅读 · 0 评论 -
广搜和深搜
一般来说,广搜常用于找单一的最短路线,或者是规模小的路径搜索,它的特点是"搜到就是最优解", 而深搜用于找多个解或者是"步数已知(好比3步就必需达到前提)"的标题,它的空间效率高,然则找到的不必定是最优解,必需记实并完成全数搜索,故一般情况下,深搜需要很是高效的剪枝(优化).像搜索最短路径这些的很显著若是用广搜,因为广搜的特征就是一层一层往下搜的,保证当前搜到的都是最优解,当然,最短路径只原创 2014-07-28 22:22:37 · 1549 阅读 · 0 评论 -
冒泡排序
sharp] view plaincopyprint?class BubbleSortAlgorithm { public void BubbleSort(int[] array) { bool exchanged = false; // to check whether the array is sorted.原创 2014-07-27 21:23:55 · 898 阅读 · 0 评论 -
查找最小的k个元素(数组)
题目:输入n个整数,输出其中最小的k个。 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。1 在数据量不大的情况下,排序2 维护一个最小k 的数组 ,复杂度 为 o(k * N) 3 为一个最小K个数的最大堆 o(log2 k * N)/*查找最小的k 个元素题目:输入n 个整数,输出其中最小的k 个。例如输入1,2,3,4,5,6,7原创 2014-07-27 23:43:13 · 1307 阅读 · 0 评论 -
在一个无序整型数组中找出第k小的数字
问题描述:在一个无序整型数组中找出第k小的数字:示例:数组[16, 105, 3, 31, 61, 50, 61, 80, 78, 49] 结果 k=50算法:分治算法+快速排序思路:如果在递增有序的数组中,第k小的数字必然在k-1位置上。而对于初始无序的数组,快速排序在每次排序完成后,在枢纽值(哨兵/pivot)左边的值会永远在其左边,而在其右边的值永远会在其右边,那们根转载 2014-06-08 23:08:45 · 5365 阅读 · 1 评论 -
A*第二篇
[摘要] 本文介绍了启发式算法中一种重要而有效的算法------A*算法的理论,并给出了寻路问题的交互式实现。[关键词] A*,启发式算法,最优路径,交互,AS2[历史回顾] P. E. Hart , N. J. Nilsson 和B. Raphael共同发表了一篇在启发式搜索方面有深远影响力的论文:“P. E. Hart, N. J. Nilsson转载 2014-06-05 17:47:42 · 1306 阅读 · 0 评论 -
动态规划--背包
#include "stdio.h" int V[200][200]; int max(int a, int b)//比较函数{if(a > b)return a;elsereturn b;} int KnapSack(int n, int w[], int v[], int x[], int原创 2014-06-03 19:10:57 · 978 阅读 · 0 评论 -
数据结构笔记
最近在看国嵌唐老师的数据结构视频,觉得还不错,所以就把笔记记录下来本节知识点:1.数据之间的逻辑结构: 集合结构:数据元素之间没有特别的关系,仅同属相同集合 线性结构:数据元素之间是一对一的关系 树形结构:数据元素之间存在一对多的层次关系 图形结构:数据元素之间是多对多的关系2.数据之间的物理结构转载 2014-03-25 09:11:41 · 1473 阅读 · 0 评论 -
数据结构之堆栈
堆栈和队列是两种面向表的数据结构,它们都提供了易于理解的抽象。堆栈中的数据只能在表的某一端进行添加和删除操作,反之队列中的数据则在表的一端进行添加操作而在表的另一端进行删除操作。堆栈被广泛用于从表达式计算到处理函数调用的任何编程语言的实现中。而队列则用在区分优先次序的操作系统处理以及模拟现实世界的事件方面,比如银行出纳柜台的队列,以及建筑物内电梯的操作。C#语言为使用这些数据结构提供了两种类:St转载 2014-01-08 10:57:12 · 1120 阅读 · 0 评论 -
计算机32个算法
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出转载 2013-06-20 00:51:30 · 900 阅读 · 0 评论 -
算法导论-->约瑟夫问题
问题描述:约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。关于输入:每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 0 0关于输出:对于每行输入数据(最后一行除外),输出数原创 2013-06-19 11:16:25 · 927 阅读 · 0 评论 -
二叉树
版权所有,转载请注明出处,谢谢!http://blog.youkuaiyun.com/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关转载 2013-06-17 11:11:18 · 674 阅读 · 0 评论 -
算法study——目录
参考博客:http://blog.youkuaiyun.com/v_july_v/article/details/6015165 1、算法原创 2013-06-11 16:58:26 · 719 阅读 · 0 评论 -
二叉树建立、遍历(前序,中序,后序),求叶节点个数,求节点个数
二叉树是笔试面试中考试最频繁的数据结构之一,主要包括,程序建立一个二叉树,三种次序遍历二叉树,返回叶子节点的数目,求二叉树节点的总数等。建立一个二叉树节点的数据结构typedef struct Node{int data;struct Node *left,*right;}Node;,结构体内包括数据,左子树,又子树;一、建立二叉树的程序代码如下[cpp]转载 2013-06-12 14:38:33 · 1343 阅读 · 0 评论 -
数据结构-->线索二叉树
线索化的实质是将二叉链表中的空指针改为指向前驱或者后继的线索 前驱或者后继的信息只有在遍历时才能得到 线索化的过程即为在遍历过程中修改空指针的过程。1、线索二叉树: 中序遍历二叉线索树的过程分析: 线索二叉树构造:原创 2013-05-18 22:58:43 · 919 阅读 · 0 评论 -
vector hash arraylist list
1、如果线程要求安全,使用Vector,Hashtable2、如果不要求线程安全,应使用ArrayList,LinkedList,HashMap3、如果要求键值对,则使用HashMap、Hashtable4、如果数据很大,又要线程安全考虑Vector访问效率最高的是ArrayList,HashTable次之 如果你会进行大量的插入/删除操作,而不是对容器中的元素进行简单的访原创 2014-07-29 00:07:26 · 929 阅读 · 0 评论