
数据结构学习
倚街听雨
把螺丝拧到极致……
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基本排序算法
归并排序 归并排序是建立在归并操作上的一种有效的排序算法,采用分治法(Divide and Conquer),将已有序的序列合并得到完全有序的序列。 归并排序主要有两种实现方法: 1.递归实现 2.迭代实现 时间复杂度:归并排序以O(N*logN)最坏情形时间运行,而所使用的比较次数几乎最优,它是递归算法的一个好实例。 先定义一个归并方法 //传入一个数组,L为左边界,M为中点,R为右边界 public static void merge(int[] arr,int L,int M,int R){原创 2021-06-13 19:34:49 · 110 阅读 · 0 评论 -
JAVA笔记
二叉查找树的删除节点 二叉查找树的一般操作中最复杂的,虽然删除节点对于人们来收很不友好,但是在很多树中应用又非常广泛。 删除节点的一般思想: 1.找到要删除的节点 2.删除节点 3.用后面的节点替补已删除的节点。 在二叉查找树中删除节点要考虑三种情况: 1.该节点是叶节点(没有子节点) 2.该节点有一个叶子节点 3.该节点有两个叶子节点 以上三种情况是越来越复杂。 public boolean delete(int key) { Node current = root; //要删除的节点原创 2020-12-23 22:42:40 · 88 阅读 · 0 评论 -
双向链表
前言:双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 由图可知双向链表由头指针、尾指针和数据域组成。之前的单链表就只有一个指针和一个数据域,这也造成了单链表访问时只能从头开始,直到链表的结尾。而双向链表前后的有两个指针,既可以从头遍历到尾, 又可以从尾遍历到头,也就是一个节点既有向前连接的引用, 也有一个向后连接的引用。因此,双向链表可以有效的解决.原创 2020-11-13 23:27:33 · 1582 阅读 · 0 评论 -
单链表的应用
前言: 上一节通过学习单链表,知道单链表的是随机存取结构,要获取元素的元素必须从头指针出发顺序查找,因此也称为顺序存取的存取结构,使用单链表可以克服数组链表需要预先知道数据大小的缺点,实现灵活的动态内存管理。 这里我们用C语言结合单链表来实现一个可以实现增删改查的学生管理系统。 #include<stdio.h> #include<string.h> #include<stdlib.h> //定义结构属性 struct MM { char name[20]; in原创 2020-11-11 21:01:06 · 482 阅读 · 0 评论 -
单链表
数据结构之单链表(有表头) 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。 链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象)+指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 C语言实现一个有表头(头节点不存放数据)的单链表 1.首先用一个结构体描述数据的节点 //定义节点结构 struct Node { int data; //存储int类型的数据 struct Node*next; //结构体指针原创 2020-11-10 21:17:40 · 225 阅读 · 0 评论