摘要: 本文根据《大话数据结构》一书,实现了Java版的二叉排序树/二叉搜索树。 二叉排序树介绍 在上篇博客中,顺序表的插入和删除效率还可以,但查找效率很低;而有序线性表中,可以使用折半、插值、斐波那契等查找方法来实现,但因为要保持有序,其插入和删除操作很耗费时间。 二叉排序树(Binary Sort Tr 阅读全文
posted @ 2018-06-28 21:58 华仔要长胖 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 本文根据《大话数据结构》一书,实现了Java版的顺序查找、折半查找、插值查找、斐波那契查找。 注:为与书一致,记录均从下标为1开始。 顺序表查找 顺序查找 顺序查找(Sequential Search):从第一个到最后一个记录依次与给定值比较,若相等则查找成功。 顺序查找优化:设置哨兵,可以避免每次 阅读全文
posted @ 2018-06-27 10:41 华仔要长胖 阅读(2650) 评论(0) 推荐(3) 编辑
摘要: 上述代码输出“i与j相等”,错在于if()语句中不是等号运算符==,而是赋值运算符=。 int类型等不会出现这种问题,在对boolean类型进行判断时要注意,别粗心。 阅读全文
posted @ 2018-06-26 15:36 华仔要长胖 阅读(16253) 评论(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 华仔要长胖 阅读(1759) 评论(0) 推荐(0) 编辑
摘要: 本文根据《大话数据结构》一书,实现了Java版的串的朴素模式匹配算法、KMP模式匹配算法、KMP模式匹配算法的改进算法。 1.朴素的模式匹配算法 为主串和子串分别定义指针i,j。 (1)当 i 和 j 位置上的字母相同时,两个指针都指向下一个位置继续比较; (2)当 i 和 j 位置上的字母不同时, 阅读全文
posted @ 2018-06-07 16:08 华仔要长胖 阅读(2100) 评论(0) 推荐(0) 编辑
摘要: [1, 2, 3] 1 2 3 阅读全文
posted @ 2018-06-07 08:36 华仔要长胖 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 本文转载于:java中常用的String方法 1 length()字符串的长度 输出的结果是字符串长度10。 2 charAt()截取一个字符 输出的结果是字符串a的下标为1的字符e。 3 getchars()截取多个字符并由其他字符串接收 输出的结果为Hello,其中第一个参数0是要截取的字符串的 阅读全文
posted @ 2018-06-06 14:55 华仔要长胖 阅读(385) 评论(0) 推荐(1) 编辑
摘要: 本文根据《大话数据结构》一书,实现了Java版的循环队列、链队列。 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 1.循环队列 队列的顺序储存结构:用数组存储队列,引入front指针指向队头元素,rear指针指向队尾元素的下一个位置,当front=rear时,为空队列,结构如下图 阅读全文
posted @ 2018-06-06 09:32 华仔要长胖 阅读(742) 评论(0) 推荐(0) 编辑
摘要: 本文根据《大话数据结构》一书,实现了Java版的栈的顺序存储结构、两栈共享空间、栈的链式存储机构。 栈:限定仅在表尾进行插入和删除操作的线性表。 栈的插入(进栈)和删除(出栈)操作如下图所示。 1.栈的顺序存储结构 用数组存放数据,top变量来指示栈顶元素在数组中的位置(栈顶指针)。一个长度为5的栈 阅读全文
posted @ 2018-06-05 22:28 华仔要长胖 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 本文根据《大话数据结构》一书,实现了Java版的双向链表。 在每个数据结点中都有两个指针,分别指向直接后继和直接前驱,这样的链表称为双向链表。 双向链表的结构如图所示: 查找元素可以根据元素的位置,分别沿正向和反向查找。 双向链表实现程序: 测试程序: ——————————插入1到5,并读取内容—— 阅读全文
posted @ 2018-06-04 19:48 华仔要长胖 阅读(383) 评论(0) 推荐(0) 编辑