![](https://img-blog.csdnimg.cn/20200415100530829.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
基础数据结构实现及实践
xiaotongn
温故而知新
展开
-
双向链表
为什么需要双向链表?单链表的结点都只有一个指向下一个结点,单链表的数据元素无法直接访问其前驱元素,所以逆序访问单链表中元素极其耗时;思想有点类似使用空间复杂度换时间复杂度。双向链表:在单链表的结点中增加一个指向其前驱的pre指针;该链表中第一个结点的前趋结点为NULL,最后一个结点的后继结点为NULL 。双向链表具有单链表的所有操作:创建、销毁、获取链表长度、清空、获取某个元素、插入...原创 2019-07-29 15:35:37 · 9739 阅读 · 0 评论 -
俄罗斯轮盘赌
链表实现俄罗斯轮盘赌原创 2019-07-29 15:36:01 · 1148 阅读 · 0 评论 -
线性表的链式存储
链式存储单链表的基本操作及实现两个部分信息数据元素的存储结构,称为“结点”。n个结点通过指针域相互链接,组成一个链表。每个结点中只包含一个指针域,生成的链表称为线性链表或单链表头结点、头指针和首结点头结点:在链表的第一个结点之前会额外增设一个结点,结点的数据域为空一般不存放数据,(有些情况可以存放链表的长度信息)若结点的指针域为空(NULL),表明链表是空表。头结点对于链表...原创 2019-07-16 21:14:50 · 364 阅读 · 0 评论 -
线性表-循环链表
循环链表的定义将单链表中最后一个数据元素的next指针指向第一个元素,即把链表的两头连接,形成了一个环状链表,称为循环链表在循环链表中可以定义一个“当前”指针,称为游标,通过游标来遍历链表中所有元素;循环链表和动态链表相比,唯一的不同就是循环链表首尾相连,其他都完全一样可以用两次打印循环链表,直观看下是否为循环链表循环链表的应用-约瑟夫环问题 约瑟夫环问题,是一...原创 2019-07-26 16:00:37 · 747 阅读 · 0 评论 -
线性表-静态链表
逻辑结构上相邻的数据元素。存储在指定的一块内存空间中,数据元素只允许在该块内存空间中随机存放。该存储结构生成的链表称为静态链表。静态链表与动态链表的区别:静态链表限制了数据元素存放的位置范围;动态链表存储元素范围是分配整个内存空间;接下来看静态链表的数据结构:typedef struct aa{ int data;//数据域 int cur;//游标 }component;...原创 2019-07-26 16:03:04 · 395 阅读 · 0 评论 -
线性表
线性表概述原创 2019-07-15 11:26:43 · 87 阅读 · 0 评论 -
数据结构与算法概述
部分参考:数据结构与算法数据结构知识结构图为什么要学习数据结构? 提高程序原分析和解决问题的能力。数据结构是什么?数据结构指数据对象中数据元素之间的关系。 数据结构分为两个部分去理解,数据和结构。 数据:程序的操作对象,用于描述客观事物,如::文字、数字、字母、符号、图形图像、音频视频... 结构:理解数据各部分的关系,例如一篇文章结构,有总分式,并列式,判断文章的...原创 2019-07-15 11:28:11 · 132 阅读 · 0 评论 -
线性表的顺序存储
参考顺序表一、顺序存储线性表是顺序存储结构指用一段地址连续的存储单元依次存储线性表的数据元素。也就是说,逻辑上具有线性关系的数据按照前后顺序关系依次全部存储在一块连续的内存空间中;使用顺序存储结构的数据,其第一个元素对应地址为该存储空间的首地址,通过首地址,可以依次访问到其他元素。使用线性表的顺序存储结构生成的表称为顺序表。顺序表实现顺序表中存放数据特点和数组数据类型相...原创 2019-07-14 11:49:34 · 538 阅读 · 0 评论 -
二叉树
二叉树概念树结构是一种非线性存储结构结构,存储的事具有“一对多”关系的数据元素的集合。树的结点结点:使用树结构存储的每一个数据元素都被称为“结点”父结点(双亲结点)、子节点、兄弟结点树根结点:(“根结点”):每一个非空树都有且只有一个被称为根结点。叶子结点:如果结点没有任何子节点,那么此结点称为叶子结点。子树、空树:如果集合本身为空,那么构成的树被称为空树,空树中没有结...原创 2019-09-11 20:46:39 · 250 阅读 · 1 评论