数据结构_学习篇
专注数据结构知识的学习
A__B__C__
这个作者很懒,什么都没留下…
展开
-
常见的6种排序图解 - java语言描述
目录1、冒泡排序2、直接插入排序3. 希尔排序4、归并排序5. 快速排序6. 选择排序首先,在说几个排序算法之前,先自己写一个简单的工具类,判断一个数列是否有序(以升序为例),如果不是升序的数列,在出现乱序的地方把附近的两个元素输出一下: /** * 判断一组数据是不是升序 * @param array 传入一个需要判断是否有序的数列 ...原创 2019-08-10 12:01:31 · 595 阅读 · 0 评论 -
数据结构_搜索之哈希
1. 哈希的概念在进行顺序查找或者二叉搜索树查找时,元素存储的位置和元素各个关键码之间没有对应关系,所以在查找一个元素时必须通过关键码的比较才能判断该关键码所存放的位置,搜索的效率取决与在搜索过程中元素比较的次数。因此,这个时候就想有这么一种理想的查找算法,可以不经过任何比较,直接从存储元素的表中得到想要查找的数据。为此,我们构造一种结构,通过某种函数使元素的存储位置和存储的值...原创 2019-04-23 01:00:21 · 623 阅读 · 0 评论 -
java实现双向链表的基本操作
1、链表的基本介绍在java中,要想保存多个对象,那么首先可以想到的就是对象数组;如果要想保存多个任意对象,那么可以想到的一定是Object型的数组。Object[] data = new Object[3] ;但是在实际开发中,要面临的一个问题是:数组是一个定长的线性结构。一旦我们的内容不足或者内容过多,都有可能造成空间浪费。要想解决此类问题,最好的做法就是设计一个长度可变的链表,有多少数...原创 2018-11-02 21:20:40 · 583 阅读 · 0 评论 -
堆的应用
1、优先级队列(注:在这篇博客里会涉及到一些堆的基本操作,这些堆的基本操作请参考上一篇博客:堆的基本操作(https://blog.csdn.net/A__B__C__/article/details/82818091))优先级队列,名字叫队列,其实就是用堆来封装的一层而已,个人感觉和队列没有什么关系;代码如下:头文件(其中包含了队列的操作,堆排序和top K问题):#ifn...原创 2018-09-24 22:39:53 · 381 阅读 · 0 评论 -
C语言_双向循环链表的基本操作
目录: 1、初始化 2、头部插入 3、头部删除 4、尾部插入 5、尾部删除 6、打印链表 7、任意位置插入 8、查找值为data的节点 9、指定位置删除 10、销毁链表1、初始化:创建一个节点,给节点赋值为0;因为是循环链表,所以让它的_pNext指针域和_pPre 指针域都指向自己void DCListInit ...原创 2018-09-11 22:17:57 · 1761 阅读 · 0 评论 -
单向链表的基本操作以及常见面试题分析
目录: 一、单链表的基本操作 1、初始化链表 2、尾部插入 3、尾部删除 4、头部插入 5、头部删除 6、销毁链表 7.打印单链表内容 8、查询数据为d的节点 9、在指定位置之前插入一个节点 10、指定位置节点删除 11、删除数据为d,第一次出现的节点 12、删除数据为d的所有节点 二,链表常见面试题 1、...原创 2018-08-04 16:17:12 · 490 阅读 · 0 评论 -
C语言_顺序表操作
1、头文件 SequList.h#ifndef __ SequList _ H __#define __ SequList _ H __#include <stdio.h>#include <stdlib.h>#include <assert.h&原创 2018-06-19 16:13:26 · 410 阅读 · 0 评论