06 2018 档案

摘要:本文根据《大话数据结构》一书,实现了Java版的二叉排序树/二叉搜索树。 二叉排序树介绍 在上篇博客中,顺序表的插入和删除效率还可以,但查找效率很低;而有序线性表中,可以使用折半、插值、斐波那契等查找方法来实现,但因为要保持有序,其插入和删除操作很耗费时间。 二叉排序树(Binary Sort Tr 阅读全文
posted @ 2018-06-28 21:58 华仔要长胖 阅读(584) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的顺序查找、折半查找、插值查找、斐波那契查找。 注:为与书一致,记录均从下标为1开始。 顺序表查找 顺序查找 顺序查找(Sequential Search):从第一个到最后一个记录依次与给定值比较,若相等则查找成功。 顺序查找优化:设置哨兵,可以避免每次 阅读全文
posted @ 2018-06-27 10:41 华仔要长胖 阅读(2733) 评论(0) 推荐(3)
摘要:上述代码输出“i与j相等”,错在于if()语句中不是等号运算符==,而是赋值运算符=。 int类型等不会出现这种问题,在对boolean类型进行判断时要注意,别粗心。 阅读全文
posted @ 2018-06-26 15:36 华仔要长胖 阅读(16328) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,对Java版的二叉树、线索二叉树进行了一定程度的实现。 另: 二叉排序树(二叉搜索树) 平衡二叉树(AVL树) 二叉树的性质 性质1:二叉树第i层上的结点数目最多为 2{i-1} (i≥1)。 性质2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。 性质3:在任意 阅读全文
posted @ 2018-06-25 17:37 华仔要长胖 阅读(1809) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的串的朴素模式匹配算法、KMP模式匹配算法、KMP模式匹配算法的改进算法。 1.朴素的模式匹配算法 为主串和子串分别定义指针i,j。 (1)当 i 和 j 位置上的字母相同时,两个指针都指向下一个位置继续比较; (2)当 i 和 j 位置上的字母不同时, 阅读全文
posted @ 2018-06-07 16:08 华仔要长胖 阅读(2210) 评论(0) 推荐(0)
摘要:[1, 2, 3] 1 2 3 阅读全文
posted @ 2018-06-07 08:36 华仔要长胖 阅读(438) 评论(0) 推荐(0)
摘要:本文转载于:java中常用的String方法 1 length()字符串的长度 输出的结果是字符串长度10。 2 charAt()截取一个字符 输出的结果是字符串a的下标为1的字符e。 3 getchars()截取多个字符并由其他字符串接收 输出的结果为Hello,其中第一个参数0是要截取的字符串的 阅读全文
posted @ 2018-06-06 14:55 华仔要长胖 阅读(409) 评论(0) 推荐(1)
摘要:本文根据《大话数据结构》一书,实现了Java版的循环队列、链队列。 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 1.循环队列 队列的顺序储存结构:用数组存储队列,引入front指针指向队头元素,rear指针指向队尾元素的下一个位置,当front=rear时,为空队列,结构如下图 阅读全文
posted @ 2018-06-06 09:32 华仔要长胖 阅读(782) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的栈的顺序存储结构、两栈共享空间、栈的链式存储机构。 栈:限定仅在表尾进行插入和删除操作的线性表。 栈的插入(进栈)和删除(出栈)操作如下图所示。 1.栈的顺序存储结构 用数组存放数据,top变量来指示栈顶元素在数组中的位置(栈顶指针)。一个长度为5的栈 阅读全文
posted @ 2018-06-05 22:28 华仔要长胖 阅读(974) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的双向链表。 在每个数据结点中都有两个指针,分别指向直接后继和直接前驱,这样的链表称为双向链表。 双向链表的结构如图所示: 查找元素可以根据元素的位置,分别沿正向和反向查找。 双向链表实现程序: 测试程序: ——————————插入1到5,并读取内容—— 阅读全文
posted @ 2018-06-04 19:48 华仔要长胖 阅读(406) 评论(0) 推荐(0)
摘要:本文稍微介绍了一下循环链表。 将单链表终端结点的指针域由空指针改为指向头结点,形成一个环,这种头尾相接的单链表称为循环列表。 循环列表的结构如下图所示: 循环链表的优点:可以从任意一个结点出发,遍历所有结点。 将两个具有尾指针的循环链表合并成一个表非常方便,如下图所示: 合并后: Java程序代码: 阅读全文
posted @ 2018-06-04 17:46 华仔要长胖 阅读(468) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的静态链表。 用数组描述的链表,称为静态链表。 数组元素由两个数据域data和cur组成:data存放数据元素;cur相当于单链表中的next指针,称为游标。 某一静态链表结构如图所示(游标存放内容可参考程序中的说明1): 静态链表的优缺点: 静态链表实 阅读全文
posted @ 2018-06-04 16:50 华仔要长胖 阅读(545) 评论(0) 推荐(0)
摘要:自己写程序时出现过 java.lang.NullPointerException错误的一些原因 (1)自己建立了一个数组,但每个数组元素没单独初始化(单独new一个新对象)。 (2)在进行if (array == null || array.length <= 0)判断时,写成了if (array. 阅读全文
posted @ 2018-06-04 15:39 华仔要长胖 阅读(370) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的单链表。 每个结点中只包含一个指针域的链表,称为单链表。 单链表的结构如图所示: 单链表与顺序存储结构的对比: 实现程序: 测试代码: 基本数据类型和引用类型各写了一个测试代码。 表为空! ——————————插入1到5,并读取内容—————————— 阅读全文
posted @ 2018-06-02 12:47 华仔要长胖 阅读(623) 评论(0) 推荐(0)
摘要:通过 Scanner 类可以获取用户的输入,创建 Scanner 对象的基本语法如下: nextInt()、next()和nextLine() nextInt(): it only reads the int value, nextInt() places the cursor(光标) in the 阅读全文
posted @ 2018-06-02 11:28 华仔要长胖 阅读(4389) 评论(0) 推荐(0)