
数据结构
算法与数据结构经典类型解读
linlinlin45
顶端相见
展开
-
查找与排序
查找的相关概念查找是什么呢?我准备打个电话给朋友,懒得重新输入电话号码,需要查找通讯录或者通话记录;我想买件衣服或者买双鞋,需要在网购app上搜索关键字,来查找心仪的商品;我LOL想练一个没玩过的英雄,不知道该点什么天赋,出什么装备,需要去浏览器去查找玩法攻略;…由此可见,查找或搜索,在我们的生活中随处可见,甚至说是必不可少的。所以我们来讲一下查找的相关概念:在数据结构中,我们把所有被查的数据所在的集合,统称为查找表查找表(Search Table)是 同一类型 的数据元素(或记录原创 2020-05-29 09:10:56 · 1063 阅读 · 0 评论 -
图的基本操作(无向图)
图的定义图(Graph)在是一种较线性表和树更为复杂的数据结构。在线性表中,数据元素之间是被串起来的,只有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有着很明显的层次关系,并且每一层的数据元素可能和下一层的多个元素相关,但是只能和上一层的一个元素相关。 这就和一对父母可以有多个孩子,但是一个孩子只能有一对亲生父母一样。但是实际上,在现实生活中,很多事物和人际关系都是十分复杂的,并非简单的一对一、一对多的关系。这个时候就可以用图这种数据结构来表示,在图的数据结构原创 2020-05-22 22:50:52 · 7873 阅读 · 2 评论 -
单链表的创建、插入、删除等操作
单链表的相关操作1. 输入一组整型数据,建立一个单链表2. 在指定位序前插入数据元素3. 删除指定位序的数据元素4. 查找指定位序的元素值5. 输出链表6. 删除链表- 相关头文件及准备#include<iostream>using namespace std;#define OK 1#define ERROR 0#define ElemType inttyp...原创 2020-02-26 15:39:46 · 2040 阅读 · 0 评论 -
用栈实现的简单操作
众所周知,栈(stack)是限定仅在表尾进行插入或删除操作的线性表,其特点是后进先出允许删除和插入的一端称为栈顶(top),另一端称为栈底(base)根据这个特性,可以实现多种实际应用,本文跟大家分享十进制转换其他进制数和括号匹配检验的应用举例栈的实现和表示头文件、常量定义和栈的定义#include<iostream>using namespace std;#define...原创 2020-03-09 17:31:11 · 604 阅读 · 0 评论 -
串的定长顺序存储表示和实现
串是零个或多个字符的有限序列,我们可以将其看作是种特殊的线性表,其特殊性在于线性表的数据元素的类型总是字符性,字符串的数据对象约束为字符集。串的存储方式有三种:定长顺序存储表示、堆分配存储表示、块链存储表示。本文主要讲解串的定长顺序存储表示及其操作的实现相关定义及准备#include<iostream>using namespace std;#define TRUE 1#...原创 2020-03-24 15:44:18 · 6077 阅读 · 4 评论 -
稀疏矩阵的转置算法
关于数组,大家并不陌生,几乎所有的程序设计语言都把数组类型设为了固有类型。数组是n(n>1)个相同类型数据元素构成的有限序列,它是下标-值偶对的集合,即集合中的每一个元素都是由一个值和一组下标组成的。数组一般分为一维、二维、三维数组,其中二维数组也称为矩阵,本文主要讲解对于矩阵中稀疏矩阵的相关操作算法。稀疏矩阵在矩阵中,当数值为0的元素远远多于非0元素的个数,且非0元素的分布并没有规...原创 2020-03-29 20:25:18 · 8011 阅读 · 1 评论 -
二叉树的基本操作的实现
树树的定义树(Tree)是n(n>=0)个结点的有限集。当有限集T为空时称为空树;当T不为空时,它满足两个条件:有且仅有一个特定的称为根(root)的结点;其余的结点可分为m(m>=0)个互不相交的子集T1,T2,T3…Tm,其中每个子集又是一棵树,并称其为子树(Subtree)。基本术语树的结点包含一个数据元素及若干指向其子树的分支度为0的结点称为叶子结点(le...原创 2020-04-06 19:42:16 · 1765 阅读 · 0 评论