树的定义:n(n>=0)个节点的有限集。
n=0时称为空树。
n!=0时为非空树,有且仅有一个特定的节点——根;n>1时,其它节点可以分为m(m>0)个互不相交的有限集T1~Tm,其中每一个集合本身又是一棵树,并且称为根的子树。
树的一些基本术语:
树的结点:由一个数据元素和若干个指向其子树的分支组成。
结点的度:结点所拥有的子树的个数(即分支数)称为该结点的度。
叶子结点:度为0的结点称为叶子结点...
分类:
编程语言 时间:
2015-07-23 00:43:04
阅读次数:
220
链表常见题型:
1.找到单链表的倒数第k个节点。
2.删除单链表中的某个结点(O(1))。
3.反转链表。
4.两个链表的第一个公共结点。
5.有环链表返回环路的开头节点(及判断是否有环)。
6.合并两个排序的链表。
7.删除链表中重复的结点。...
分类:
编程语言 时间:
2015-07-22 00:10:20
阅读次数:
279
栈的定义:(特殊的线性表)??仅在表的一端进行插入和删除的线性表。允许插入、删除的这一端称为栈顶,另一端称为栈底。表中没有元素时称为空栈。??被称为后进先出的线性表(Last In First Out),简称 LIFO表,或被称为先进后出的线性表(First In Last Out),简称 FILO表。??栈更具存储方式的不同分为两种:顺序栈和链栈。顺序栈:
和顺序表一样,顺序栈也采用数组来存放数据...
分类:
编程语言 时间:
2015-07-21 10:47:55
阅读次数:
242
队列(Queue)的定义:只允许在一端进行插入另一端进行删除操作的线性表。允许插入的一端称为队尾(rear) ,允许删除的一端称为队头(front)。 具有“先进先出”特点。队列也是线性表,所以也存在顺序结构和链式结构。顺序队列:对于队列,入队操作的解释为:
(是在队尾追加一个元素,不需要移动任何元素,因此时间复杂度为0(1)。)
判断队列是否已满;
如果没满则先给队尾元素赋值;
然后将队尾指针后...
分类:
编程语言 时间:
2015-07-21 10:42:46
阅读次数:
114
如何检测一个链表是否有环?这个是一个出现频率较高的面试题。
??如下是一个含有环的链表。
(图片来自http://www.nowamagic.net/librarys/veda/detail/2245
一个有很多关于数据结构的文章的网站,还有其他的资料,可以看看)
我这里解题的方法有三种:
快慢指针方法:两个速度不一样的指针遍历总会相遇;
利用环的顶点数和边相等的关系;
两个指针遍历判断...
分类:
编程语言 时间:
2015-07-20 12:57:24
阅读次数:
242
静态链表的定义:
节点由一个一维数组和一个指针域组成,数组用来存放数据元素,而指针域里面的指针(又称游标)用来指向下一个节点的数组下标。这样的链表称之为静态链表。
链表中的数组第一个和最后一个位置需要特殊处理,不存数据。第一个位置(即数组0下标)的节点的指针用来存放备用链表的第一个节点的数组下标。最后一个位置(即数组长度MaxSize-1下标)的节点的指针用来存放指向有数值的第一个数据元素的数组...
分类:
编程语言 时间:
2015-07-19 18:05:09
阅读次数:
152
线性表的顺序存储结构,也称为顺序表,指用一段连续的存储单元依次存储线性表中的数据元素。根据顺序表的特性,我们用数组来实现顺序表,下面是我通过数组实现的Java版本的顺序表。package com.phn.datestructure;
/**
* @author 潘海南
* @Email 1016593477@qq.com
* @TODO 顺序表
* @date 2015年7月16日
*/...
分类:
编程语言 时间:
2015-07-19 00:14:59
阅读次数:
183
线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续。
链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。注意一个头结点和头指针的区别:
头指针:
指向链表的第一个节点的指针,若链表有头结点,则是指向头结点的指针;
头指针具有标识作用,所以常用头指针作为链表的名字;
不论链表是否为空,头指针都不为空;
是链表的必...
分类:
编程语言 时间:
2015-07-19 00:14:40
阅读次数:
196
Java版链表逆置
定义数据结构:
/**
* 链表的数据结构
*/
class LinkedListArray {
/**
* value
*/
Object value;
/**
* 下个节点
*/
LinkedListArray next = null;
public void setValue(Ob...
分类:
编程语言 时间:
2015-07-14 13:47:52
阅读次数:
176
1 package iYou.neugle.tree; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class Binary_Tree { 7 private Tree tree ...
分类:
编程语言 时间:
2015-07-13 17:49:16
阅读次数:
148