![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 C语言
大白的弟弟小白
这个作者很懒,什么都没留下…
展开
-
C语言结构体
1.结构体定义 声明一个结构体: typedef struct 和 struct C C++ typedef struct A{ int num; long length; }B; 申请结构体变量的方法有两种: ①struct A 变量名; ②B 变量名; 申请结构体变量的方法有...转载 2020-04-22 09:55:59 · 174 阅读 · 0 评论 -
数据结构——绪论(C语言)
一、数据结构的基本概念1.基本概念和术语数据:信息的载体,是描述客观事物属性的数,字符及所有能输入到计算机中并被计算机程序识别和处理的符号集合。数据对象:具有相同性质的数据元素的集合,是数据的一个子集。数据元素:数据的基本单位,通常作为一个整体进行考虑和处理。数据项:构成数据元素的不可分割的最小单位。详见链接:link.数据类型:- 原理类型:值的操作集合+操作(int、float...原创 2020-04-21 21:57:42 · 185 阅读 · 0 评论 -
邻接多重表
基本概念邻接表虽然已经能够很好地表示无向图了,但是无向图访问或者删除一条边(Vi,Vj)时需要同时访问两个链表i和j并分别找到对应的边结点,这给针对图的边的操作(标记或删除)带来不便利。邻接多重表因此而演变过来的。邻接多重表中,无向图中的每一个顶点分配一个顶点结点,所有顶点结点构成一个顶点数组adjmultiList[num]。另外每条边也分配一个边结点。顶点结构如下所示:其中data用...转载 2020-04-07 18:41:40 · 5931 阅读 · 5 评论 -
邻接表、邻接多重表、十字链表的介绍
邻接表使用邻接表存储图时,对于图中的每一个顶点和它相关的邻接点,都存储到一个链表中。每个链表都配有头结点,头结点的数据域不为NULL,而是用于存储顶点本身的数据;后续链表中的各个结点存储的是当前顶点的所有邻接点。所以,采用邻接表存储图时,有多少顶点就会构建多少个链表,为了便于管理这些链表,常用的方法是将所有链表的链表头按照一定的顺序存储在一个数组中(也可以用链表串起来)。在邻接表中,每个链表...原创 2020-04-07 18:31:04 · 5871 阅读 · 3 评论 -
十字链表
十字链表基本概念十字链表是为了便于求得图中顶点的度(出度和入度)而提出来的。它是综合邻接表和逆邻接表形式的一种链式存储结构。在十字链表存储结构中,有向图中的顶点的结构如下所示:其中data表示顶点的具体数据信息,而firstIn则表示指向以该顶点为弧头的第一个弧节点。而firstOut则表示指向以该顶点为弧尾的第一个弧节点。为了表示有向图中所有的顶点,采用一个顶点数组存储每一个结点,如下...转载 2020-04-07 17:51:53 · 2419 阅读 · 0 评论 -
C语言排序算法
插入排序直接插入排序void InsertSort(SqList &L){//对顺序表L做直接插入排序 for(i=2;i<=L.length;++i) if(L.r[i].key<L.r[i-1].key) //"<",需将r[i]插入有序子集 { L.r[0]=l.r[i]; //将待插入的记录暂存到监...原创 2019-08-14 16:09:41 · 636 阅读 · 0 评论 -
数据结构——栈与队列(C语言)
栈与队列的定义和特点栈的定义和特点栈是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾有其特殊含义,称为栈顶,相应地,表头端称为栈底。不含元素的空表称为空栈。假设栈S=(a1a_1a1,a2a_2a2,···,ana_nan),则称a1a_1a1为栈底元素,ana_nan为栈顶元素。栈中元素按a1a_1a1,a2a_2a2,····,ana_nan的次序进栈,退栈...原创 2019-08-05 22:17:59 · 844 阅读 · 1 评论 -
串、数组和广义表
(1)串是内容受限的线性表,它限定了表中的元素为字符。申有两种基本存储结构:顺序存储和链式存储,但多采用顺序存储结构。串的常用算法是模式运配算法,主要有BF算法和KMP算法。BF算法实现简单,但存在回溯,效率低。时间复豪度为O(m×n) 。KMP算法对BF算法进行改进,消除回溯,提高了效率,时间复杂度为O(m+n)。(2)多维数组可以看成是线性 表的推广,其特点是结构中的元素本身可以是具有某种结...原创 2019-08-04 23:22:22 · 644 阅读 · 0 评论 -
数据结构——线性表(C语言)
线性表的定义和特点1.定义:由n(n≥0)个数据特性相同的元素构成的有限序列称为线性表。说明:线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他每个元素都有一个前驱和后继。线性表中元素的个数n(n≥0)定义为线性表的长度,n=0时称为空表。2.对于非空的线性表或线性结构,其特点是:(1)存在唯一的一个被称作“第一个”的数据元素;(2)存在唯一的一个被称作“最后...原创 2019-08-04 16:07:49 · 1194 阅读 · 0 评论 -
算法和算法分析
算法的定义及特性算法是为了解决某类问题而规定的一个有限长的操作序列。五个特性:1.有穷性 2.确定性 3.可行性 4.输入 5.输出评价算法的标准1.正确性 2.可读性 3.健壮性 4.高效性算法的时间复杂度1.问题规模和语句频度不考虑计算机的软硬件等环境因素,影响算法时间代价的最主要因素是问题规模。问题规模是算法求解问题输入量的多少,是问题大小的本质表示,一般用整...转载 2019-07-16 23:32:52 · 571 阅读 · 0 评论 -
数据、数据元素、数据项和数据对象
数据数据是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑中用到的字符串,多媒体程序处理的图形、图像、声音及动画等通过特殊编码定义后的数据。数据元素数据元素是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、记录等。数据元素用于完整地描述一个对象,如一名学生记录,树中棋盘的一个格局(状态...转载 2019-07-04 19:12:02 · 4036 阅读 · 1 评论