数据结构
二爷.
学习使我快乐
展开
-
4. 递归 理解
例子:public static void test(int n) { if (n > 2) { test(n - 1); } //else{ System.out.println("n=" + n); //}}调用规则如图:来源: 尚硅谷原创 2021-12-26 13:50:40 · 172 阅读 · 0 评论 -
前缀,中缀,后缀表达式(逆波兰表达式)
前缀表达式从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 和 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果例如: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6中缀表达式中缀表达式就是常见的运算表达式,如(3+4)×5-6中缀表达式的求值是我们人最熟悉的,但是对计算机来说却不好操作(前面我们讲的案例就能看的这个问题),因此,在计算结果时,往往会将中缀表达式转成其它原创 2021-12-26 13:49:04 · 117 阅读 · 0 评论 -
3. 栈的基础知识
1、栈是一个先入后出(FILO-First In Last Out)的有序列表。2、栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。代码例子://定义一个 ArrayStack 表示栈class ArrayStack { private int maxSize; // 栈的大小 private int[] stack; // 数组,数组模拟原创 2021-12-26 13:44:35 · 536 阅读 · 0 评论 -
Josephu(约瑟夫环)问题
Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。代码如下:public class Josepfu { public static void main(String[] args) { // 测试一把看看构建环形链表,和遍历是否ok CircleSingleLinked原创 2021-12-26 13:42:32 · 106 阅读 · 0 评论 -
2. 链表和环形链表
链表1、链表是以节点的方式来存储,是链式存储2、每个节点包含 data 域, next 域:指向下一个节点.3、如图:发现链表的各个节点不一定是连续存储.4、链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定代码例子:import java.util.Stack;public class SingleLinkedListDemo { public static void main(String[] args) { //进行测试 //先创建节点原创 2021-12-26 13:39:40 · 78 阅读 · 0 评论 -
1. 队列
队列基本介绍环形队列基本介绍1)队列是一个有序列表,可以用数组或是链表来实现。2)遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出3)示意图:(使用数组模拟队列示意图)当 front == rear 【空】rear == maxSize - 1 【队列满】用数组模拟一个队列import java.util.Scanner;public class ArrayQueueDemo { public static void main(String[] args原创 2021-12-26 13:35:26 · 46 阅读 · 0 评论 -
线性结构、非线性结构和稀疏数组
前置知识线性结构和非线性结构稀疏数组线性结构和非线性结构线性结构线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。2.1 顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的2.2 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈,后面我们会详细讲解.非线性结构非线性结构包括:二维数组,多维数组,原创 2021-12-26 13:29:07 · 315 阅读 · 0 评论 -
数据结构线性表的顺序和实现
数据结构线性表的顺序和实现语言:C++IDE:vs#include “pch.h”#include “string.h”#include “conio.h”#include #define _CRT_SECURE_NO_WARNINGSusing namespace std;#define OK 1#define ERROR 0#define OVERFLOW -2type...原创 2020-03-27 20:00:05 · 106 阅读 · 0 评论