
数据结构与算法
文章平均质量分 86
Bugggget
记下是个好习惯
展开
-
数据结构--单链表
//单链表的创建,删除,插入,遍历;#includeusing namespace std;typedef struct Node {int data;Node* next;}LNode, *LinkList;//创建单链表LinkList CreateFromHead(Node* L){int c = 1;LinkList原创 2017-03-16 22:36:16 · 3362 阅读 · 0 评论 -
数据结构-哈希
什么是哈希?哈希是用来查找的一个搜索结构。一般的算法是通过比较来找数据的,但是哈希查找不用比较就可以一次直接从事先建好的哈希表中找到数据。来看下使用各搜索算法的时间复杂度和空间复杂度:所以哈希算法就是一种用空间换时间的算法哈希的实现方式:通过对要存入的数据进行key-value的映射到数组中的第key个位置。例子: 有一个int arr[ 10 ]数组,存入10, 11, 24, 1...原创 2018-05-17 21:21:44 · 461 阅读 · 0 评论 -
[ C数据机构 ]二叉排序(搜索)树
二叉排序树性质:二叉排序树又叫二叉搜索树,具有以下性质:若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;左、右子树也分别为二叉排序树;如下就是一颗二叉排序树:中序遍历的结果正好是1 3 5 7 8。结构体定义:typedef int BSTreeDataType;// 二叉搜索树(二叉排序树)typedef st...原创 2018-05-10 21:46:28 · 527 阅读 · 0 评论 -
c数据结构-栈-迷宫问题(循环实现)
走迷宫步骤:使用二维数组来表示迷宫地图。1表示可以走,0表示不能走。设置迷宫入口。判断迷宫入口是否合法。将入口点入栈将当前点设置为入口点。loop:判断是否能往左走,能则将当前点压栈。goto loop判断是否能忘上走,能则将当前点压栈。goto loop判断是否能往右走,能则将当前点压栈。goto loop判断是否能往下走,能则将当前点压栈。goto loop判断是否到达出口判断是否到达死胡同 ...原创 2018-04-21 18:22:59 · 939 阅读 · 0 评论 -
数据结构-队列
队列的基本概念 队列的性质 队列的操作原创 2018-04-21 15:58:05 · 376 阅读 · 0 评论 -
数据结构-二叉树Java实现
二叉树的概念:一颗二叉树是节点的有限集合。二叉树由左子树和右子树组成,每一个非空的子树都可以称作一个独立的二叉树。二叉树的特点:每个节点最多有两颗子树,即树的度最大为2;子树右左右之分,次序不能颠倒。二叉树的分类:满二叉树:不存在度为1的节点。只可能度为0和2完全二叉树:具有N个节点的结构与满二叉树的前n个节点的结构相同。称为完全二叉树。二叉树的性质:(1)若规定根节点的层数为1,则一颗非空二叉树...原创 2018-04-30 18:00:20 · 388 阅读 · 0 评论 -
c数据结构--单链表进阶
主要内容:1.逆序显示单链表2.逆置单链表3.在已知节点前插一个节点(不允许遍历链表)4.删除指定节点(不允许遍历链表)5.单链表冒泡排序6.找到中间节点7.找到倒数第k个节点8.删除倒数第k个节点9.获取两个链表的交点10.判断链表是否带环,返回环的入口点11.魔术扑克牌12.拉丁矩阵13.约瑟夫环14.合并两个有序链表15.判断两个链表是否相交(链表可能带环)16.复杂链表的复制(带一个ran...原创 2018-03-30 15:58:45 · 413 阅读 · 0 评论 -
c数据结构--链表基本操作
链表是一种线性结构,和顺序表相比,链表能充分利用磁盘上的空间,在对链表进行插入删除操作时,时间复杂度为O(1),相对于顺序表,插入删除时间复杂度为O(n),但链表需要额外的存储指针的空间,且链表不能随机访问。所以使用链表还是使用顺序表需要根据具体的使用场景。当多为查询操作时使用顺序表比较好,当删除增加操作比较多时,应该使链表。#include #include #include原创 2018-03-27 18:14:27 · 352 阅读 · 0 评论 -
Java双向链表
双向链表 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。应用场景:发布订阅机制,客户端维护,列表键底层实现之一,等等java双链表实现:DLinkList.javapackage cn.ltp.dlinklist;/**原创 2018-04-15 14:09:13 · 563 阅读 · 0 评论 -
c数据结构--栈
栈基本操作:1. 压栈2. 出栈3. 栈判空4. 元素个数5. 栈清空6. 栈销毁操作应用:1. 进制转换2. 括号匹配3. 中缀转后缀4. 后缀求值5. 迷宫问题原创 2018-04-06 02:00:39 · 314 阅读 · 0 评论 -
C++基础知识复习之--顺序表学生成绩管理系统
/*有点粗糙,用的是结构体定义的学生信息,可以实现输入学生信息输出学生信息;插入学生信息;按成绩排序,按学号排序;按学号查询学生信息,按名字查学生信息;删除学生信息;修改学生信息;*///顺序表#include#include#include#includeusing namespace std;const int MAX原创 2017-03-10 22:56:50 · 7908 阅读 · 0 评论 -
数据结构-堆
堆的性质:堆是按照完全二叉树的顺序存储方式存储在一个一维数组中。堆分为小堆和大堆,不满足小堆和大堆性质的二叉树不能叫堆。小堆:父节点的value 大堆:父节点的value > 任何一个子节点的value。(Ki >= K2 * i + 1)且(Ki >= K2 * i + 2);数据结构堆和堆栈中的堆的区别:原创 2018-05-11 23:48:51 · 502 阅读 · 0 评论