数据结构
文章平均质量分 62
软工16009彭杰
16009软工彭杰
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java实现栈
一、什么是栈 栈是一种数据结构,特点是后进先出(LIFO) 二、实现栈 public class MyStack { private Object[] oList = null; private int count = 0; private int capacity = 0; public MyStack(int capacity) { this.capacity = capacit...原创 2019-03-29 19:24:38 · 124 阅读 · 0 评论 -
队列
特点:先进先出 两类;数组队列和链队列 一.循环数组队列(循环队列比一般数组队列实用,所以这里用它举例子) 1.定义循环数组队列(计算机不会给你创建好) typedef struct node{ int shuzi[5]; int rear,front; }duilie; (英文不好,用拼音) 2.置空队列(电脑没那么勤快,给了你一块地,地上杂草的自己拔) a->front = ...原创 2017-05-17 20:16:07 · 363 阅读 · 0 评论 -
树与二叉树
前言:数据结构到树开始就离开了我们熟悉的顺序结构,向着递归学习,所以这成了学习数据结构的门槛,很多同学跨这门槛过去的会扯着蛋,剩下的跨不下去。 希望我的对树与二叉树额理解与描述能帮助同学跨过这道门槛。(完全看完并理解,想相信这部分知识完全能掌握) 一.树 我们脑海中会浮现这样的图片 但数据结构的树比较难看了,是这样的 1.树的定义(我很讨厌定义,虽然说理论上是对的,但是看不懂,复...原创 2017-05-20 15:15:55 · 394 阅读 · 0 评论 -
树、森林与二叉树的转换和哈夫曼树
前言:你和一个修仙的人在草地上看到了一棵树,你说那棵树好漂亮,大仙说:“不那是一片森林,无数棵树在森林里”。所以说树和森里可以互相转换。(这里乱说一通,哈哈哈) 一、树转化为二叉树 下面看一棵普通的树 转化方法: 1.把所有兄弟结点连接起来 2.删掉除了结点第一个左孩子外的连线 变成了这个样子 3.旋转45度 变成这个样子 完成了 二、森林转化为二叉树 下面看一片...原创 2017-05-29 15:11:38 · 2645 阅读 · 0 评论 -
红黑树的介绍
一、二叉查找树(Binary search tree) 红黑树是对二叉查找树的优化,所以先了解二叉查找树。 左子树的值小于等于父节点的值 右子树的值大于等于父节点的值 下图是例子 二、红黑树(Red and Black Tree) 既然红黑树一对二叉查找树的优化,它有二叉查找树的特点 红黑树特点 根节点是黑色 节点要么是红色要么是黑色 某节点到其叶子节点,中间经历的黑色节点数相同 红色节点...原创 2019-04-06 19:34:42 · 206 阅读 · 0 评论 -
二分查找的介绍及实现
一、二分查找的介绍 二分查找前提是数组或者链表排好序,把需要查找的值和数组的中间值做比较,如果小于中间值则在数组的以中间值为界限的左边再取一个中间值,如果大于中间值则在数组的以中间值为界限的右边再取一个中间值再进行比较,以此类推。 二、Java实现 public class HalfSearch { public int search(int num, int[] arr) { int le...原创 2019-03-30 19:05:57 · 176 阅读 · 0 评论 -
冒泡排序介绍及实现
一、冒泡排序的介绍 冒泡排序是每一趟,前一个值和后一个值比较。大的数就往后挪。这样一趟之后,最大的数就放在了最后。 二、Java实现 public class BubblingSort { public int[] sort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr...原创 2019-03-30 18:26:33 · 228 阅读 · 0 评论 -
插入排序介绍及实现
一、插入排序的介绍 数组分为排好序的部分和没排序的部分,排好序的部分放在前面。 每i躺选第i个元素放到排好序的部分所对应的位置。 二、Java实现 public class InsertSelect { public int[] sort(int[] arr) { for (int i = 1; i < arr.length; i++) {//每一趟 for (int j =...原创 2019-03-30 18:08:01 · 197 阅读 · 0 评论 -
选择排序法介绍及实现
一、选择排序法介绍 它得算法就是一句话:选出最小的数,把它放到前面。 二、Java代码实现 public class SelectSort { public int[] sort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int index = i;// 每趟的最小值下标 for (int j = ind...原创 2019-03-30 17:39:15 · 191 阅读 · 0 评论 -
中缀表达式转逆波兰表达式算法介绍
一、表达式(中缀表达式) 中缀表达式就是我们常见的表达式,比如a+b。 二、波兰表达式(前缀表达式) a+b在前缀表达式显示为:+ab。操作符在操作数的前面 三、逆波兰表达式(后缀表达式) a+b在后缀表达式显示为:ab+。操作符在操作数后面。 再来复杂一点:a+b*c。转化为后缀表达式: 乘号的优先级高于加号,把b*c看成整体代号为d,得到a+d 已知a+b = ab+,所以a+d = ad+...原创 2019-03-30 16:41:19 · 1248 阅读 · 0 评论 -
Java实现队列
一、什么是队列 队列是一种数据结合,它的特点是先进先出(FIFO) 二、实现队列 public class MyQueue { private Object[] queue = null; private int capacity = 0; private int count = 0; public MyQueue(int capacity) { this.capacity = ca...原创 2019-03-29 19:52:48 · 133 阅读 · 0 评论 -
栈
特点:后进先出 栈的两种形式:数组栈和链式栈 下面我们来讲解这两种栈; 一.数组栈 首先定义数组栈(计算机不认识什么数组栈) typedef struct{ int shuzu[10]; int top,base; }zhan;(英文不好所所以用拼音代替) 1.置空栈(前面的定义就是简单的弄框架,一些细节还需要优化) zhan->base = zhan->top = 0...原创 2017-05-16 19:09:09 · 263 阅读 · 0 评论
分享