![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 60
IT集装箱
个人微信公众号“IT集装箱”目前正在吸粉阶段,欢迎搜索加关注,获取更多精彩IT技术知识内容分享!
展开
-
七大常用查找算法C++实现
1、顺序查找int sequenceSearch(int* arr, int size, int n) { if (!arr || size<1){ return -1; } for (int i=0; i!=size; ++i){ if (n = arr[i]){ return i; } } return -1;}2、二分查找-非递归int binarySearch(int* arr, int size, int n) { if (!arr ||.原创 2020-08-07 23:05:11 · 1143 阅读 · 0 评论 -
十大排序算法C++实现
1、插入排序:和玩纸牌游戏一样,抓牌时小的插在前边,后边牌往后移动void insertSort(size_t size, int* arr) { if (!arr || size <= 1) { return; } for (size_t i = 0; i < size; i++) { for (size_t j = i; j > 0 && j <= size - i - 1; j++) { if (arr[j - 1] > ar原创 2020-08-07 23:00:54 · 297 阅读 · 0 评论 -
数据结构-红黑树
1. 红黑树的定义红黑树在二叉搜索树的基础上,还要求有以下性质:节点是红色或黑色; 根节点是黑色; 不能有连续的两个红色节点。 从任一节点到其每个叶子的简单路径都包含相同数目的黑色节点。两棵简单的红黑树性质3表明:红色节点的父、左子、右子只能是黑色节点,红色和红色不能直接连一起;而黑色无论红黑都可以连一起。(红色暴脾气互不相容,黑色和蔼可亲谁来都行);性质4表明:随便选一个节点,不论从怎么走,走到最后叶子节点时,其经过路径的黑色节点数量都是相等的(所谓完全黑平衡)。而性质3和4转载 2020-07-02 20:02:08 · 290 阅读 · 0 评论 -
数据结构-图(图的基本实现C++)
一、图的概念图是一种比较复杂的非线性数据结构图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。图区分有向图和无向图1、无向图(Undirected graphs)如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。无向图相关概念:顶点、边2、有向图(Direc...原创 2020-04-25 13:00:38 · 1411 阅读 · 0 评论 -
数据结构-树(树基本实现C++)
树形结构是一种重要的非线性数据结构。其中树和二叉树最为常用,直观看来树是以分支关系定义的层次结构。树形结构是我们平时比较熟悉的,比如文件夹目录、公司组织关系等。在计算机领域也得到广泛的应用,编译程序就是以树来表示源程序的语法结构。二叉树是一种特殊的树形结构,他的特点是每个节点至多只有两颗子树,并且,子树有左右之分,顺序不能颠倒。树形结构里边还有很多的知识点,我不在这里做文字...原创 2020-04-25 12:57:18 · 1753 阅读 · 0 评论 -
数据结构-链表(链表的基本实现C++)
线性表是最常用而且简单的一种数据结构,一个线性表是n个数据元素的有限序列。当线性表需要频繁查找,较少插入和删除时,通常采用顺序存储结构,若需要频繁插入和删除,通常采用基于链表的形式;当线性表的元素个数变化较大或不确定时,最好用链表,这样不需要考虑存储空间大小问题,当事先知道线性表的大小长度,用顺序存储结构效率会高一些。1、线性表的顺序表示和实现顺序表,基于数组的一种实现,一组地址...原创 2020-04-25 12:54:48 · 684 阅读 · 0 评论 -
数据结构-队列(队列的基本实现C++)
栈和队列是两种重要的线性结构。从数据结构角度看,栈和队列也是线性表,其特殊在于栈和队列的基本操作是线性表操作的子集,他们是操作受限的线性表。但是从数据类型角度看,他们是和线性表大不相同的抽象数据类型。与栈相反,队列是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素,跟我们平时排队是一个道理。队列也有两种存储表示方法:顺序存储和链式存储,顺序存储常见的就是环形队列,初始...原创 2020-04-25 12:51:23 · 643 阅读 · 0 评论 -
数据结构-栈(栈基本实现C++)
栈和队列是两种重要的线性结构。从数据结构角度看,栈和队列也是线性表,其特殊在于栈和队列的基本操作是线性表操作的子集,他们是操作受限的线性表。但是从数据类型角度看,他们是和线性表大不相同的抽象数据类型。栈是限定仅在表尾进行插入或者删除操作的线性表。表尾端称“栈顶”,表头端称“栈底”,不含元素的空表称“空栈”。栈最主要的特性为“先进后出”。栈和线性表类似,有两种存储表示方法:顺序存储和链式存...原创 2020-04-25 12:49:16 · 993 阅读 · 0 评论 -
数据结构-数组(数组基本实现C++)
数组是一种线性表数据结构,除了第一个元素以外,集合中的每个数据元素均只有一个前驱,除了最后一个元素以外,集合中每个元素均只有一个后继,用一组连续的内存空间,来存储一组具有相同类型的数据。数组采用连续的存储单元存放数据,所以数组一般不作插入和删除等操作,一旦建立了数组,则结构中的数据元素个数和元素间的关系就确定了,因此采用顺序存储结构表示数组。数组是程序设计语言中比较基础但是却至关重要的数...原创 2020-04-25 12:47:22 · 1919 阅读 · 0 评论 -
数据结构-串(字符串类基本实现C++)
计算机上的非数值处理对象基本上是字符串数据。在比较早的程序设计语言中,字符串是作为输入和输出的常量出现的。随着语言的发展,产生了字符串处理,这样字符串也就作为一种变量类型出现在众多的设计语言中,也产生了许多的字符串操作,字符串一般简称为串。串(字符串)是由零个或多个字符组成的有序序列。以上是对字符串一个基本的介绍,关于字符串其实还有很多的知识点,但是这次内容主要是根据c++中std::str...原创 2020-04-25 12:44:28 · 1116 阅读 · 0 评论 -
两张思维导图,让你轻松学习数据结构
前段时间打算重新温习一下数据结构,整理一些新的内容,在网上搜到了很多受用的精彩博客,可以说受益匪浅。“前人栽树,后人乘凉”已然石锤了。先亮出第一张思维导图:数据结构思维导图-1一.数据结构的基本概念数据结构定义:数据结构是一种存储和组织数据的方式,以便于访问和修改。数据结构包括数据的逻辑结构、数据的存储结构以及数据的运算,即按照某种逻辑关系组织起来的一批数据,按一定的映射方式...原创 2020-04-25 12:41:22 · 3750 阅读 · 0 评论