数据结构
Atalanta1
这个作者很懒,什么都没留下…
展开
-
翻转链表
定义一个结点类:class Node { int val; Node next; public Node(int val) { this.val = val; }}图解:【这里以头删+头插为例】翻转链表:package com.basic.datastructure;//翻转链表public class...原创 2019-08-25 22:21:48 · 168 阅读 · 0 评论 -
【Java实现】合并两个有序链表,合并后依然有序
package com.basic.datastructure;//合并两个有序链表,合并后依然有序public class MergeList { /**1.非递归 * (1)同时遍历两个链表的各自节点 * (2)进行值的比较,哪个值比较小,选哪个节点放入新链表中 * (3)添加至新链表的方式是尾插 * (4)当一个链表中的结点被全部取走...原创 2019-08-25 22:22:00 · 901 阅读 · 2 评论 -
直接插入排序算法【Java语言实现】
直接插入排序算法:【这里默认的是非降序排列】(1)先在有序的部分【图中黄色的部分】查找合适的位置(从后往前遍历查找);(2)将待插入的数插入到合适的下标处 把待排序列中的第一个数【下标为i】当做是要插入的数与已排序列的数,从后往前进行比较【第一个进行比较的数下标为j=i-1】 具体步骤: i)定义一个变量key=array[i]--...原创 2019-06-02 20:35:34 · 693 阅读 · 0 评论 -
Java实现判断一个序列是否为某二叉搜索树的后序遍历(加图解)
题目描述: 输入一个整数数组,判断该数组是不是某二叉树的后序遍历 的结果。如果是则输出“YES”,否则输出“NO”。假设输入的数组的任意两个数字都互不相同。在解决这个问题之前,首先要弄清楚两个问题: (1)简单了解什么是二叉搜索树? (2)后序遍历的方法1.二叉搜索树的定义:二叉搜索树又叫二叉排序树也叫二叉查找树(Binary Search Tree),二叉排序树...原创 2019-04-12 00:30:29 · 884 阅读 · 1 评论 -
重建二叉树
输入某二叉树的前序建立和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字,例如:输入前序遍历序列{1,2,4,7,3,5,6,8}和中序序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:前序遍历二叉树的顺序是:根--->左---->右;中序遍历二叉树的顺序是:左---->根---->右前序序列中第一个...原创 2019-04-07 21:11:44 · 149 阅读 · 0 评论 -
静态顺序表顺序表的基本操作
顺序表:是用一段地址连续的存储单元一次存储数据元素的线性结构,是线性表的一种一般采用数组表示顺序表,数组有静态数组和动态数组之分,在此我们采用静态数组表示静态顺序表,如图为线性表的结构:下面实现顺序表的基本操作:初始化;销毁;尾插、头插;尾删、头删;根据指定元素删除指定位置插入和删除;查找;静态顺序表的结构定义:#define MAXSIZE ...原创 2019-02-13 20:45:40 · 579 阅读 · 0 评论 -
单链表的基本操作图解表示
单链表就是链式存取的数据结构(也是线性表的一种),使用一组地址任意的存储单元存放的线性表中的数据元素,这些地址可以连续也可以不连续。 链表的表示方法:结点表示:如下图所示:data域:存放该节点的数据next域:存放后继结点的地址单链表结构的定义:typedef struct ListNode{ struct ListNode *next; Datatype d...原创 2019-02-16 18:00:11 · 1437 阅读 · 0 评论 -
栈的基本操作
栈:一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除的一端称为栈顶,另一端称为栈底。不含任何元素的栈成为空栈,栈的特点是先入栈的元素后出栈,即先进后出。栈的功能:将数据从一种序列改变到另一种序列下面为数据入栈、出栈的简单示意图下面给出栈的基本操作的代码:#pragma once #include <assert.h>#includ...原创 2018-11-08 20:59:36 · 220 阅读 · 0 评论 -
复杂链表的复制(C 语言 和 Java 语言)
所谓的复杂链表指的是一个链表有若干各节点,每一个节点右移个数据域专门用来存放数据,还有两个指针域其中一个纸箱下一个结点,还有一个随机指向当前复杂链表中的任意一个结点或者是一个空节点。如下图所示,就是一个复杂链表:解题思路:1.定义链表结构:2.把要拷贝的结点插入该链表在完成该操作之后,新链表的random就在原来链表的random之后了3...原创 2018-11-15 23:22:16 · 235 阅读 · 0 评论