数据结构
ARLoverKang
这个作者很懒,什么都没留下…
展开
-
二叉树遍历(递归算法和非递归算法)
用图形的方式来表现二叉树的结构,非常直观,也容易理解。但是,对于计算机来说,只能处理线性序列,因此需要通过遍历将树中的结点变成某种意义的线性序列。二叉树的遍历是指按照一定次序访问二叉树中的所有节点,且每个节点仅被访问一次的过程。是最基本的运算,是其他运算的基础。 二叉树的遍历方式:先序遍历,中序遍历,后序遍历和层次遍历。 可以通过递归和迭代来实现二叉树各种次序的遍历, 迭代有两方法:原创 2013-07-05 21:50:35 · 878 阅读 · 0 评论 -
最短路算法(Shortest Paths Algorithm)
假如你有一张地图,地图上给出了每一对相邻城市的距离,从一个地点到另外一个地点,如何找到一条最短的路? 最短路算法要解决的就是这类问题。定义:给定一个有(无)向图,每一条边有一个权值 w,给定一个起始点 S 和终止点 T ,求从 S 出发走到 T 的权值最小路径,即为最短路径。最短路算法依赖一种性质:一条两顶点间的最短路径包含路径上其他最短路径。简单的说就是:最短路径的子路径是最短路径。这个用反证法转载 2013-08-18 22:19:34 · 1117 阅读 · 0 评论 -
List, ArrayList, LinkedList, Vector 及 Map, HashMap, HashTable区别
一、前言: 本文是力求将这几点讲的通俗易懂,让大家同时也让自己在基础上,更加牢固点。 Collection 有序的集合 ├------List 接口 │ ├LinkedList 链表 (异步, 线程非安全) │ ├ArrayList 顺序结构动态转载 2013-09-22 15:30:49 · 837 阅读 · 0 评论 -
给一个正整数N,打印NxN的蛇形矩阵(一) 之空间复杂度O(NxN)
当N=4时,对应的蛇形矩阵如下图: 图 1 将该蛇形矩阵中元素的坐标代替其元素值时,得到如图2的矩阵,此时横坐标i和纵坐标j的和m=i+j具有一定的规律。当m为偶数时,原矩阵(图1中矩阵)中的元素值沿左下方增大,当m为奇数时,原矩阵中的元素值沿右上方增大。 图 2 在了解其规律后不难打印蛇形矩阵中元素,其代码如下: void printSnakeOfN原创 2013-10-22 16:33:41 · 2151 阅读 · 0 评论 -
约瑟夫环问题两解
继续笔试准备ing……分享一下昨天做到的其中一题,其实题目很老,也做过n遍了,但复习起来也是颇有韵味,同时还发现另一种妙解,感觉不错的。 问题描述: 约瑟夫环问题(Josephus) 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus) 解法一(My Solution): 思想转载 2013-10-23 21:04:12 · 891 阅读 · 0 评论