![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 85
Cukor丘克
最坏的结果不过是大器晚成。
展开
-
数据结构之二叉查找树Java泛型版
二叉查找树是父节点的权值比其左子树的权值大又比其右子树的权值小的二叉树。二叉查找树可递归生成,并且每一颗小子树都是二叉查找树。根据二叉查找树的特点对其进行中序遍历会得到一串有序的序列,故又称二叉查找树为二叉排序树。二叉查找树的查找发挥了二叉树的二叉的优势,并且二叉查找树适合对原序列进行插入和删除操作,原始的二分查找是在数组中进行查找操作不适合进行插入和删除操作。原创 2022-09-07 23:52:59 · 465 阅读 · 2 评论 -
数据结构之平衡二叉树C语言版
作者:Cukor Zhong什么是平衡二叉树平衡二叉树是具有平衡属性的有序二叉树,所谓的平衡即当前树的左右子树高度差的绝对值不超过1。因为平衡二叉树是由苏联数学家Adelson-Velskii和Landis提出,所以又称为AVL树。平衡二叉树的基本特点是特殊的有序二叉树左右子树高度差的绝对值不超过1左右子树仍然是平衡二叉树原创 2022-04-16 00:06:22 · 4542 阅读 · 2 评论 -
数据结构之有序二叉树C语言版
数据结构之有序二叉树C语言版文章目录数据结构之有序二叉树C语言版什么是有序二叉树有序二叉树的优点简单实现有序二叉树有序二叉树的样子有序二叉树的结构体描述有序二叉树的各个函数的实现主函数简单测试什么是有序二叉树从名字就可以知道的是有序二叉树是二叉树的一种,这种二叉树中的数据是排好顺序的,这里实现的默认使用从小到大的排序方式。就是从外界插入进来的数据不需要使用者自己排序,在插入数据的时候就已经自动排好序。有序二叉树又称为二叉搜索树。有序二叉树的优点数据插入进来就直接排好序查询速度快最坏的情况下原创 2021-11-28 21:03:32 · 1537 阅读 · 0 评论 -
数据结构之普通队列C语言版(简单易懂)
数据结构之普通队列C语言版文章目录数据结构之普通队列C语言版什么是普通队列简单使用C语言实现普通队列前期准备结构体封装初始化队列判断队列是否为空判断队列是否满队获取队列当前元素个数获取队头出队函数测试函数什么是普通队列队列是一种数据结构,是用来存储数据的,普通队列是队列里最简单的,也比较好理解。操作和栈是差不多的。队列和栈的区别就是,栈是先进后出,队列是先进先出。然后就没有多大的区别了。简单使用C语言实现普通队列队列的基本概念就这么多,想深入了解概念的请看课本去。这里是使用编程语言来实现队列的。原创 2021-11-08 22:57:55 · 849 阅读 · 0 评论 -
数据结构之二叉树C语言实现版 2021-10-24
数据结构之二叉树C语言实现版文章目录数据结构之二叉树C语言实现版什么是树?树的基本术语树的样子二叉树的定义二叉树的单元的样子二叉树的性质二叉树的实现二叉树结构体形式二叉树节点的创建插入节点递归遍历二叉树前序遍历中序遍历后序遍历非递归遍历二叉树前序遍历中序遍历后序遍历主函数测试什么是树?树(Tree)是n个节点的有限集,它可以是空树(n=0),也可以是为空树。对于非空树有以下特征:有且仅有一个称之为根的节点除了根节点外的其他节点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每原创 2021-10-24 00:19:51 · 221 阅读 · 0 评论 -
数据结构之单链表C++版
数据结构之单链表C++版文章目录数据结构之单链表C++版包含的头文件结构体描述链表节点链表再封装各个成员函数的实现获取当前链表的大小判断链表是否为空链表头插法插入数据尾插法插入数据指定位置插入数据打印链表中的数据清理链表中的节点从链表头部开始删除节点从链表尾部开始删除节点指定位置删除节点查找链表中的数据指定位置修改数据主函数测试C++中有STL的list底层是双向链表,这里重新写一个单链表,就是写着玩。包含的头文件#include <iostream>其他就是不用了,如果想严谨一点就原创 2021-10-16 12:48:17 · 138 阅读 · 0 评论 -
[19] C++STL容器篇之list简单模拟
C++STL容器篇之list简单模拟其实就是双向链表,然后使用C++封装而且,底层代码就是双向链表,直接看代码就好。.hpp文件#pragma#include <iostream>using namespace std;template <class Ty>struct Node{ Node<Ty>* left; Ty data; Node<Ty>* right; Node(Ty data) :data(data), left(nul原创 2021-10-11 23:56:56 · 96 阅读 · 0 评论 -
[18] C++STL容器篇之链表list
C++STL容器篇之链表list文章目录C++STL容器篇之链表listC++STL的list的底层原理list的创建方式list的遍历方式list的一些常用的成员函数主函数测试一下C++STL的list的底层原理其实它的底层就是数据结构的双向链表。可以从头遍历,也可以从尾遍历的那个,但不是循环的。在STL中就把这样的一个双向链表封装成一个类,方便开发人员直接使用,避免重复造轮子。list的创建方式关于list的方式,这就要看list这个类的里面有多少个构造函数了。事实就是有很多种。以下的创建方原创 2021-10-10 14:14:50 · 399 阅读 · 0 评论 -
数据结构之双向链表C语言版
数据结构之双向链表C语言版文章目录数据结构之双向链表C语言版双向链表长什么样?双向链表的节点的结构体双向链表的链表再封装包含的头文件各个子函数的实现创建节点创建链表表头法插入数据表尾法插入数据指定位置插入数据顺序打印链表数据逆序打印链表数据表头法删除数据表尾法删除数据指定位置删除数据主函数测试数据结构就是用来存放数据的,有很多种数据结构,这篇文章写的是双向链表,用C语言实现。学习数据结构的时候直接复制粘贴源代码是没什么用的。不知道数据结构内部的实现,等于没学。双向链表长什么样?在了解一个数据结构之前原创 2021-10-06 02:26:43 · 171 阅读 · 0 评论 -
[17] C++STL容器篇之向量vector
C++STL容器篇之向量vector文章目录C++STL容器篇之向量vector什么是向量向量vector和数组array的区别向量vector和链表的区别向量的基本用法需要包含的头文件vector的创建方式vector的访问方式vector的遍历方式向量的一些基本成员函数简单地使用一下vector什么是向量在C++中向量是一个可以存放数据的容器,并且这个容器可以自动扩展(这一点和定长数组就有区别)。向量vector和数组array的区别从肉眼就能直接看到的区别就是,数组array是定长的,在创建原创 2021-10-04 16:25:56 · 269 阅读 · 0 评论 -
[16] C++STL容器篇array的手动实现(简单模拟)
C++STL容器篇array的手动实现(简单模拟)文章目录C++STL容器篇array的手动实现(简单模拟)需要包含的头文件实现的头文件格式开始封装MyArray简单测试学过了C++STL的容器array,其实想更准确地理解它,最好是看它源码,然后自己手动实现,这样进步就比较快,而且也知道它内部实现结构。那就开始吧。需要包含的头文件C++标准输入输出流头文件:#include <iostream>实现的头文件格式因为C++STL的array是模板,所以自己实现的时候也需要用模板来原创 2021-09-30 20:16:15 · 252 阅读 · 0 评论 -
[14] 初识C++STL(简单介绍)
初识C++STL(简单介绍)什么是泛型程序设计泛型编程就是编写不依赖于具体数据类型的程序。C++中,模板是泛型程序设计的主要工具。泛型程序设计的主要思想是将算法从特定的数据结构中抽象出来,使算法成为通用、可以作用于各种不同的数据结构。也就是,同一个模板,能做的功能差不多,数据结构不同的时候就有对应的模板使用,避免重复造轮子。什么是STLSTL,就是Standard Template Library的简称。中文翻译过来就是"标准模板库"。1994年被纳入C++标准库。从此,STL是C++内容的一大部分原创 2021-09-26 19:58:15 · 105 阅读 · 0 评论 -
数据结构之栈 C语言数组版
数据结构之栈 C语言数组版文章目录数据结构之栈 C语言数组版栈的概念栈的图解需要的头文件栈的基本结构(代码)各个子函数的实现与解析创建栈判空叛栈满获取当前栈的大小入栈获取栈顶元素出栈测试函数整体源代码测试结果数据结构中,栈是必须要学的这么一个数据结构,而这个栈的数据结构的特点就是先进后出,后进先出。存储方式就可以是顺序的数组结构存储或者是链式结构的存储方式存储。这里写的就是使用数组这种顺序存储结构来存储栈的数据。栈的概念栈的本质栈是一种数据结构有顺序的数组存储方式,称为顺序栈有链式的链表存储原创 2021-09-09 22:26:13 · 154 阅读 · 0 评论 -
数据结构之链表 C语言版
数据结构链表:单链表C语言版文章目录数据结构链表:单链表C语言版头文件链表的组成结构链表的结构体形式表头:节点:为什么调用函数后,链表不死亡?打印链表中的数据:释放链表数据:获取链表大小:判断链表是否为空:获取链表的尾节点:表头法插入:指定位置插入:指定链表数据插入:表头法删除节点:表尾法删除节点:指定链表位置删除节点:指定链表数据删除节点:指定位置修改节点数据:指定链表数据修改节点数据:表头法查询:测试环节:链表大小链表尾部链表判空增删改查懒得一个个复制,这里有完整源代码:在C语言中,数组可以很好的帮原创 2021-08-28 19:06:27 · 222 阅读 · 0 评论