数据结构
菜鸟_zhengke
这个作者很懒,什么都没留下…
展开
-
数据结构java(一)类型
1.逻辑结构指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。a.线性结构(线性表、栈、队列、字符串、数组)线性结构是非空集 线性结构有且仅有一个开始结点和一个终端结点 线性结构所有结点都最多只有一个直接前趋结点和一个直接后继结点b.非线性结构(树、图、多维数组、广义表)非线性结构是非空集。 非线性结构...原创 2019-08-28 09:49:49 · 171 阅读 · 0 评论 -
数据结构java(二)算法
1.时间复杂度作用:时间复杂度是度量算法执行时间的长短;(时间复杂度简单的理解就是执行语句的条数。如果有循环和递归,则忽略简单语句,直接算循环和递归的语句执行次数)时间复杂度的计算:找出执行语句的条数。 如果有循环和递归,则忽略简单语句,直接算循环和递归的语句执行次数;如果算法中有包含嵌套的循环,则执行次数通常是将两个循环次数相乘 ,如果算法中包含并列的循环,则将并且的相加; 将语句...原创 2019-08-28 10:16:33 · 153 阅读 · 0 评论 -
数据结构java(三)线性表 ①顺序结构实现(ArrayList)手写
1.特点相同数据类型 序列(顺序性) 有限2.逻辑结构3.存储结构链式表 (节点=值+地址) 优点 插入和删除方便,空间利用率高 缺点 存储密度小( <1 ),查找和修改需要遍历整个链表 顺序表(数组) 优点 存储密度大( =1 ),易于查找和修改 缺点 插入和删除不方便,存储空间利用率低 4.实现顺序结构实现1.自定义线性表接口(List...原创 2019-08-28 17:00:54 · 281 阅读 · 0 评论 -
数据结构java(四)线性表 ②链式结构实现(单链表SingleLinkedList)
1.创建单链表的结点Node类/** * 单链表的结点 * @author Administrator */public class Node { /** * 要存储的数据 */ private Object data; /** * 后继 */ private Node next; public N...原创 2019-08-28 17:01:36 · 193 阅读 · 0 评论 -
数据结构java(五)线性表 ②链式结构实现(双向链表LinkedList)
1.创建双向链表的结点Node类/** * 双向结点的基本结构 * @author Administrator */public class Node { /** * 表示该节点包含的值 */ private Object object; /** * 表达当前节点的下一个节点 */ private Node n...原创 2019-09-02 09:15:50 · 225 阅读 · 0 评论 -
数据结构java(六)受限制的线性表 ①顺序结构实现(顺序栈ArrayStack)
应用1.创建Stack栈接口/** * 先进后出 * 栈接口 * @author Administrator */public interface Stack { /** * 返回栈的大小 * @return */ int getSize(); /** * 判断栈是否为空 *...原创 2019-09-03 09:48:02 · 241 阅读 · 0 评论 -
数据结构java(七)受限制的线性表 ②链式结构实现(链栈LinkedStack)
1.链栈LinkedStack实现/** * 双向链表实现栈 * @author Administrator */public class LinkedStack implements Stack { /** * 链表的结点个数 */ private int size; /** * 首结点 */ private...原创 2019-09-03 10:04:12 · 187 阅读 · 0 评论 -
数据结构java(八)受限制的线性表 ①顺序结构实现(循环队列ArrayQueue)
1.创建Queue队列接口/** * 先进先出 * 队列接口 * @author Administrator */public interface Queue { /** * 返回队列大小 * @return */ int getSize(); /** * 判断队列是否为空 * @return ...原创 2019-09-03 10:08:12 · 214 阅读 · 0 评论 -
数据结构java(九)受限制的线性表 ②链式结构实现(双向链表实现队列LinkedQueue)
1.双向链表实现队列LinkedQueue实现/** * 双向链表实现队列 * @author Administrator */public class LinkedQueue implements Queue { /** * 链表的结点个数 */ private int size; /** * 首结点 */ ...原创 2019-09-03 10:11:38 · 150 阅读 · 0 评论 -
数据结构java(十)二叉树①链式结构实现(LinkedBinaryTree)
1.创建链式二叉树结点Node/** * 链式二叉树结点 * @author Administrator */public class Node { /** * 结点值 */ private Object value; /** * 左子树 */ private Node leftChild; /**...原创 2019-09-09 16:44:41 · 810 阅读 · 0 评论 -
数据结构java(十一)图①邻接矩阵实现(一维数组+二维数组)
1.IGraph接口/** * 图的接口 * @author Administrator */public interface IGraph<E> { /** * 获取顶点的个数 * @return */ int getNumOfVertex(); /** * 插入顶点 * @param v ...原创 2019-09-29 16:53:49 · 699 阅读 · 0 评论 -
数据结构java(十二)图②邻接表实现(一维数组+链表)
1.邻接表实现(GraphAdjList)import java.lang.reflect.Array;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;/** * 稀疏图 * 邻接表实现 * @author Administrator */public class ...原创 2019-09-29 16:56:18 · 473 阅读 · 0 评论 -
数据结构java(十三)查找——线性(顺序查找)
1.算法思想遍历数据元素进行比较,若与查找元素相等返回序号,否则遍历结束所有元素为不存在此元素。2.效率时间复杂度:T(n) = O(n)空间复杂度:S(n) = O(1)3.实现/** * 顺序查找 * T(n) = O(n) * S(n) = O(1) */public class Test1 { public static void main(Str...原创 2019-10-08 09:57:32 · 274 阅读 · 0 评论 -
数据结构java(十四)查找——线性(折半查找/二分查找)
1.算法思想条件:1.必须采用顺序储存 2.有序排列首先,将表中间位置记录下来,与查找元素进行进行比较。若相等,则查找成功;否则将其表以中间位置分成,前后两个子表,查找的元素小于中间位置元素,则进一步查找前一子表,否则进一步查找后一子表。循环或递归相同操作,直到查找相同返回序号,否则元素不存在。2.效率a.非递归时间复杂度:T(n) = O(log2n)空间复杂度:S(n)...原创 2019-10-08 10:16:28 · 215 阅读 · 0 评论 -
数据结构java(十五)查找——树(二叉搜索树)
1.概念(01) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(02) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(03) 任意节点的左、右子树也分别为二叉查找树。(04) 没有键值相等的节点(no duplicate nodes)2.特点中序遍历可以从小到大排列3.操作添加查找删除4.实现/** * ...原创 2019-10-11 13:42:35 · 210 阅读 · 0 评论