数据结构
硕~
我是一只大菜坤。
展开
-
数据结构:循环链表、双向链表实现及使用
文章目录一、循环链表1.1循环链表基本概念1.2循环链表基本操作1.3循环链表实现及使用二、双向链表2.1双向链表基本概念2.2双向链表基本操作2.3双向链表实现及使用一、循环链表1.1循环链表基本概念1.2循环链表基本操作1.3循环链表实现及使用二、双向链表2.1双向链表基本概念2.2双向链表基本操作2.3双向链表实现及使用...原创 2020-03-01 22:50:31 · 842 阅读 · 0 评论 -
数据结构:静态链表、企业链表实现及使用
文章目录一、静态链表二、循环链表三、双向链表四、企业链表一、静态链表二、循环链表三、双向链表四、企业链表企业链表:如果我们使用原始的C语言写链表的话,数据类型是被固定死的,如果业务换了,需要另一种数据类型,我们又得重新在写一个链表,十分麻烦!因此为了方便使用,我们引出了企业链表。作用:将实际的数据类型和链表相分离,实现实际的数据类型和链表的解耦。那么什么是企业链表呢?我们之前学的单链...原创 2020-02-28 14:20:30 · 356 阅读 · 0 评论 -
数据结构:线性表的顺序存储与链式存储
文章目录一、线性表的基本概念二、动态数组(顺序表)的实现与测试一、线性表的基本概念线性表:线性表是零个或者多个数据元素的有限序列,是最常用且最简单的一种数据结构。特点:(1)存在惟一的一个被称做“第一个”的数据元素。(2)存在惟一的一个被称做“最后一个”的数据元素。(3)除第一之外,集合中每个元素均只有一个前驱。(4)除最后一个之外,集合中每个数据元素均只有一个后继。数学语言来定义...原创 2020-02-23 11:27:37 · 11356 阅读 · 1 评论 -
数据结构:为什么要学习数据结构、什么是数据结构基本概念、抽象数据类型、算法与算法分析
文章目录一、为什么要学习数据结构二、什么是数据结构2.1什么是数据结构2.2基本概念与术语2.3逻辑结构与物理结构三、四、五、一、为什么要学习数据结构为什么要学习数据结构,它有什么用处?①首先,因为数据结构作为计算机专业的专业必修课程,是计算机考研的必考科目之一,如果打算报考计算机专业的研究生,你必须学好它;其次,数据结构是计算机软考、计算机等级考试等相关考试的必考内容之一,想要顺利通过这些...原创 2020-02-21 12:49:06 · 3809 阅读 · 0 评论 -
数据结构:串的朴素(简单)查找算法
串串:串是由零个或多个字符组成的有限序列,又叫字符串。串中字符的数目n称为串的长度。零个字符的串称为空串。字串与主串:串中任意个数连续的字符组成的子序列称为该串的子串,相应的,包含子串的串称为主串。子串在主串的位置则以子串的第一个zi’fu在主串中的位置来表示。两个串相等:当两个串的长度相等,并且各个对应位置的字符相等都相等时才相等。串的朴素查找算法:算法实现:#include&...原创 2019-05-19 19:56:39 · 473 阅读 · 0 评论 -
数据结构:顺序栈的实现
栈何为栈?栈的定义:仅限在表尾进行插入或删除操作的线性表栈的特点:后进先出,我们常用的撤销操作即是一种栈的实例栈的插入:栈的插入,也叫做进栈操作。也称压栈、入栈。如图栈的删除:栈的删除,叫做出栈,有时也叫做弹栈。如图顺序栈何为顺序栈?顺序栈:栈的顺序存储是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。顺序栈的结构定...原创 2019-05-19 18:58:08 · 2241 阅读 · 0 评论 -
数据结构:单链表的逆置
单链表的逆置单链表的逆置:方法一:向后转,第一个点变为最后一个,时间复杂度O(n)(1):将第一个点置空(2):再创建一个指针s指向还未处理的结点的第一个(3)再p赋值为q,q赋值为s,s赋值为q->next,再把p的值赋值给p->next,一直走下去,q==NULL,plist->next=p;结束代码实现:void Reverse2(List plis...原创 2019-05-12 16:04:59 · 4646 阅读 · 0 评论 -
数据结构:双向链表的使用
双向链表为什么需要双向链表?在单链表中,有了next指针,这就使得要查找的下一个结点的时间复杂度为O(1),可是要查找是上一个结点的话,最坏的时间复杂度是O(n)了,所以为了克服这一缺点提出双向链表。双向链表:双向链表是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。双向链表中每个结点都有两个指针域:一个指向直接后继,一个指向直接前驱。双向链表中循环的带头结点的空链表:非空的...原创 2019-05-10 14:15:29 · 1415 阅读 · 0 评论 -
数据结构:循环链表的使用
循环链表循环链表:将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。如图所示:非空的循环链表如图:循环链表与单链表的主要差异在于循环的判断上,原来是判断p->next是否为空,现在则是p->next不等于头结点,则循环未结束。单循环链表的定义与实现:(1)头文件:代码实现:#pragma o...原创 2019-05-10 12:35:36 · 4930 阅读 · 0 评论 -
数据结构:不定长顺序表的使用
顺序表顺序表:线性表的顺序表示指的是用一组连续的存储单元依次存储线性表的数据元素定长的顺序表即为不可扩容的线性表,而不定长的顺序表一旦因插入元素而空间不足时,可进行再分配。不定长顺序表的定义与实现:(1)头文件代码实现://不定长顺序表#pragma once#define INITSIZE 10typedef struct DSeqList{ int *elem;/...原创 2019-05-07 15:11:32 · 283 阅读 · 0 评论 -
数据结构:单链表的简单使用
单链表链表特点:逻辑地址相邻,物理地址不一定相邻。单链表:单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始,链表中最后一个结点没有后继,其指针必须置空,用NULL或^表示。单链表的构成:为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据元素ai来说,除了储存其本身的信息之外,还需储存一个指示其直接后继的信息。把存储数据...原创 2019-05-09 13:33:00 · 761 阅读 · 0 评论 -
数据结构:定长顺序表的使用
线性表是最常用且最简单的一种数据结构。有以下特点:1.简单,但不实用。2.存在惟一的一个被称做“第一个”的数据元素。3.存在惟一的一个被称为“最后一个”的数据元素。4.除第一个以外,集合中的每个元素均只有一个前驱。5.除最后一个以外,集合中的每个元素均只有一个后继。几点关于线性表的概念:1.一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录,含有大量记录的线性...原创 2019-05-06 12:34:46 · 237 阅读 · 0 评论 -
数据结构:快速排序及其优化
快速排序:快速排序的基本思想是:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分继续进行排序,以达到整个序列有序的目的。下面为快速排序。还有优化方案:Partition函数实现取一个基准点1.随机取基准点2.三数取中优化3.小数据量(使用插入排序)4.聚集优化2,3,4合起来为快速排序的最高优化void Swap(in...原创 2019-06-26 17:20:26 · 170 阅读 · 0 评论