最近开始看数据结构,该系列笔记简单记录总结下所学的知识,更详细的推荐博主StrayedKing的数据结构系列,笔记部分也摘抄了博主总结的比较好的内容. 一些基本概念和术语 数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称. 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理.有时,一个数据元素可由若干个数据项组成,数据项是数据的不可分割的最小单位. 数据对象是性质相同的数据元素的集合,是数据的一个子集. 数据结构是相互之间存在一…
栈和队列是两种重要的线性结构.从数据结构角度看,栈和队列也是线性表,但它们是操作受限的线性表,因此,可称为限定性的数据结构.但从数据类型角度看,它们是和线性表大不相同的两类重要的抽象数据类型. 栈的定义 栈(Stack) 是限定仅在表尾进行插入或删除操作的线性表.因此,对栈来说,表尾端称为栈顶(top),表头端称为栈底(bottom).不含元素的空表称为空栈. 栈为后进先出的线性表,简称LIFO结构. 栈的表示和实现 和线性表类似,栈也有两种存储表示方法:顺序栈和链栈. 顺序栈,即栈的顺序存储结…
队列的定义 队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素.这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开.在队列中,允许插入的一端叫做队尾(rear),允许删除的一段则称为队头(front).假设队列为q = (a1,a2,...an)则a1就是队头元素,an是队尾元素. 双端队列 除了栈和队列之外,还有一种限定性数据结构是双端队列:限定插入和删除操作在表的两端进行的线性表.两端分别称为端点1和端点2,也可像栈一样,可用一个铁道转轨网络来比喻双端队列.…
在我们谈论本文具体内容之前,我们首先要说明一些事情.在现实生活中我们所说的"表"往往是二维的,比如课程表,就有行和列,成绩表也是有行和列.但是在数据结构,或者说我们本文讨论的范围内,我们所说的"表"是一维的,即所有"元素"都是前后排列的.就我个人而言,这样的"表"用"队列"来形容比较恰当.但是,数据结构中"队列"这个名词是被一种特殊的"表"给占用了的,所以我们没法再用…
串类型的定义 串(或字符串)是由零个或多个字符组成的有限序列,一般记为 s = 'a1a2...an',s为串名.子串在主串中的位置以子串的第一个字符在主串中的位置来表示. 串和表示和实现——定长顺序存储表示 串的顺序存储方式即是在一个字符数组中存放各字符,注意此存储方式并不包含空字符,存储字串的数组的0号单元用来标识字串长度.其存储结构如下图: //-----串的定长顺序存储表示-----// #define MAXSTREN 255 //用户可在255以内定义最大串长 typedef uns…
百度云及其他网盘下载地址:点我 编辑推荐 <清华大学计算机系列教材:数据结构(C++语言版)(第3版)>习题解析涵盖验证型.拓展型.反思型.实践型和研究型习题,总计290余道大题.525道小题,激发读者的求知欲,培养自学能力和独立思考习惯.主教材和习题解析共计配有340多组.400余幅插图结合简练的叙述,40多张表格列举简明的规范.过程及要点,280余段代码及算法配合详尽而简洁的注释,使深奥抽象的概念和过程得以具体化且便于理解和记忆:推荐20余册经典的专著与教材,提供40余篇重点的学术论文,便…
数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./*  数据结构C语言版 表插入排序  算法10.3 P267-P270  编译环境:Dev-C++ 4.9.9.2*/ #include <stdio.h>#include <limits.h> // 静态链表类型 #define SIZE 100 // 静态链表容量 typedef int KeyType; // 定义关键字类型为整型 typedef int …
数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接如下,可点击跳转: 链接:https://blog.csdn.net/pjh88/article/details/107166950 什么是数组与动态数组? 数组 数组是相同数据类型的元素按照一定的顺序排列的集合,若将有限个类型相同的变量的集合命名,那么这个名称称为数组名,组成数组的各个变量称为数组…
/*1wangxiaobo@163.com 数据结构C语言版 有向图的十字链表存储表示和实现 P165 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <malloc.h> typedef char InfoType;#define MAX_Info 80 // 信息字符串最大长度+1 #define MAX_VERTEX_NAME 5  // 顶点字符串最大长度+1 typedef char  VertexType[MAX_V…
/* 数据结构C语言版 弗洛伊德算法  P191 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <limits.h> #define MAX_NAME 5   // 顶点字符串的最大长度+1#define MAX_INFO 20   // 相关信息字符串的最大长度+1typedef int VRType;   // 顶点关系的数据类型#define INFINITY INT_MAX // 用整型最大值代替∞#define MA…