
数据结构+算法
文章平均质量分 80
我就是王大大
这个作者很懒,什么都没留下…
展开
-
二叉树遍历
二叉树是一棵树,其中每个节点不多于两个儿子。二叉树是有顺序的,左孩子的值小于根节点的值小于右孩子的值,次序 不能改变。正因为这个特点才可以方便快捷的查找。class BinaryNode{ Object element; //节点值 BinaryNode left; //左孩子 BinaryNode right; //右孩子}对于二叉树的定义如上。二叉树遍历通常有原创 2016-08-29 09:57:38 · 570 阅读 · 0 评论 -
数据结构之队列
队列是另一种顺序存取的线性表,他不同于栈,是先进先出的,就像排队一样,先来的先走。他的插入是在队列的对尾实现,删除是在对头实现队列的存储表示有两种,基于数组的和基于链表的顺序队列基于数组表示的是顺序队列,用elements[maxSize]来表示队列元素的存储结构,用front和rear指示队头和队尾指针队列建立时要初始化,即front=rear=0,每当新元素加进来就填到原创 2016-10-10 21:26:13 · 356 阅读 · 0 评论 -
数据结构之栈
栈、队列、优先级队列和双端队列是特殊的线性表,逻辑结构与线性表相同栈是先进后出的线性表,只能在表的末端进行插入删除操作,最开始加进去的叫做栈底,最后加进去的是栈顶,只能在栈顶进行操作栈的存储表示有两种:顺序栈(基于数组的存储)和链式栈(基于链表的存储) 1.顺序栈顺序栈的头指针是*elements,存放最大元素个数是maxSize,栈顶元素的位置由下标指针top指定当t原创 2016-10-12 11:19:20 · 2208 阅读 · 0 评论 -
线性表之顺序表
数据结构分为线性结构和非线性结构,线性结构是简单常用的数据结构,线性表是典型的线性结构。线性表的定义是由N个(N>=0)节点或者表项构成,他是有限数列,邻接关系是1:1,有两种:有序和无序线性表可以有不同的数据类型,如广义表,广义表表中元素自身具有某种结构,属于线性表,是线性表的推广线性表有两种存储方式:顺序存储和链式存储,有基于数组的、基于链表的、散列的表示 顺序表是基于数组的顺原创 2016-09-29 15:33:09 · 807 阅读 · 0 评论 -
线性表之链表
链表存储是数据加指针构成的,数据元素顺序可以喝存储物理顺序相同,也可以不同,因为他是由指针指向下一节点的,通过指针来实现逻辑链接最简单的链表结构是单链表,单链表的长度可以扩充,一个链表包含零个或者多个节点,链表中首元结点通过头指针first找到,其他节点地址在前驱结点的link中注意循环链表不是线性表废话不多说,先看看最常见的插入删除操作1.单链表的插入当新数据要插在第原创 2016-09-30 14:35:50 · 490 阅读 · 0 评论 -
AVL树插入删除
AVL树是一种平衡二叉树,其每个节点的左右子树高度最多差1,空树高度定为-1,当左右的高度超过1,即失去了平衡,不是AVL树了。private static class AVLNode{ AVLNode (AnyType element) {this(element ,null,null);} AVLNode(AnyTape element,AVLNode left,AVLNode r原创 2016-08-29 18:26:48 · 803 阅读 · 0 评论 -
二叉搜索树
二叉搜索树(BST)是一种树,他的特点是节点的子树不超过两个,且大小是有顺序的,任意一点节点其左孩子小于节点值小于右孩子,他的左右子树依然满足。二叉搜索树平均深度是O(log N),所以一般不担心栈空间被耗尽。privata static calss BinNode{ BinNode(AnyTape element){ this(element,null,null); } BinN原创 2016-08-29 14:59:46 · 541 阅读 · 0 评论 -
常用排序(一)
排序根据元素是否完全在在内存中分为内部排序和外排序,内部排序指的是元素完全存放在内存中,外部排序是不断在内外存3之间移动的排序基本的排序算法 中:直接插入排序、气泡排序、选择排序中时间复杂度都是n的二次方,高效排序中 :快排、堆排、归并排序都是O(n log2 n)起泡排序 他是从后倒着来,先比较n-1和n-2元素的大小,如果n-1元素小,就将他两交换位置,接下俩再向前移动,比较n原创 2016-10-18 20:56:55 · 565 阅读 · 0 评论 -
常用排序(二)
选择排序选择排序说的是:每一趟在后面没有排序n-i个元素中,选择一个最小的放在第 i 个位置上,接下来选择i+1位置上的元素,一共需要执行n-2趟操作,他的时间复杂度是O(N*N)选择排序有三种实现方式;直接选择排序、锦标赛排序、堆排序1.直接选择排序选择最小的元素,如果不是第一个就和第一个对调位置,这样他就是第一个了,重复直到排序结束void SelectSort(dataL原创 2016-10-19 16:17:26 · 464 阅读 · 0 评论