数据结构笔记
文章平均质量分 62
北顾丶
如果你感到此时自己很辛苦
告诉自己
容易走的是下坡路
辛苦
是因为你正在走上坡路
展开
-
数据结构中常用稳定算法/不稳定算法
稳定算法:冒泡算法 时间复杂度:O(n^2)插入排序 时间复杂度:O(n^2)(直接插入)基数排序 时间复杂度:O(d(r+n))计算排序合并排序二叉排序树排序不稳定算法:选择排序希尔排序组合排序堆排序快速排序算法时间复杂度表:...原创 2020-09-19 09:52:36 · 1934 阅读 · 0 评论 -
线性表-链表(一)
一,定义 什么是单链表呢? 单链表是一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点都包含指向下一个节点的链接,也就是指针 单链表的特点是什么呢? - 数据元素在 逻辑关系上相邻 ,用指针表示 - 单链表 中访问数据元素时需从头开始,即顺序访问 - 比顺序表的优势在于,提供高效的重排数据项的能力C代码: t原创 2015-05-07 21:08:09 · 760 阅读 · 0 评论 -
数据结构 - 广义表
广义表什么是广义表呢? 广义表是由零个或多个原子或子表组成的有限序列,是线性表的推广广义表一般记作:LS=(d1,d2,…,dn) LS是广义表(d1,d2,…,dn)的名称,n是它的长度。di可以是单个元素,也可以是广义表,分别称为广义表LS的原子和子表广义表概念 当广义表LS非空时,称第一个元素d1为LS的表头(Head),称其余元素组成的子表(d2,…,dn)是LS的表尾(Tail)原创 2015-05-13 20:07:14 · 2468 阅读 · 0 评论 -
数据结构 - 数组
数组与线性表的差异我们以前应该学习过数组,数组与线性表的区别与联系呢? 它们的相同之处: (1)它们的相同之处,它们都是若干个相同数据类型的数据元素a0,a1,a2,…,an-1构成的有限序列 它们的不同之处: (1)数组要求其元素占用一块地址连续的内存单元空间,而线性表无此要求 (2)线性表的元素是逻辑意义上不可再分的元素,而数组中的每个元素还可以是一个数组 (3)数组的操作主要是向某原创 2015-05-12 18:50:44 · 2151 阅读 · 0 评论 -
数据结构 - 串的性质和基本操作(二)
串的顺序存储结构①定长顺序存储结构类型:#define MAXSTRLEN 255// 用户可在255以内定义最大串长typedef unsigned char SString[MAXSTRLEN+1];// 0号单元存放串的长度分析:(1) 串的实际长度可在这个预定义长度的范围内随意设定,超过预定义长度的串值则被舍去,称之为“截断” (2) 按这种串的表示方法实现串的运算时,其基本操原创 2015-05-12 16:50:22 · 1238 阅读 · 0 评论 -
数据结构 - 串的性质和基本操作(一)
串的概念什么是串呢? 串(String):由零个或多个字符组成的有限序列。记为:s=’a1a2…an’(n≥0) s为串名, ’a1a2…an’为串值,n为串的长度。 子串在主串中的位置:以子串的第一个字符在主串中的位置来表示 串相等:当且仅当两个串的串值相等(两个串的长度相等,并且各个对应的字符也都相等串的数据类型ADT String { D={ ai原创 2015-05-11 22:01:26 · 3817 阅读 · 0 评论 -
数据结构 - 队列(一)
队列的定义什么是队列呢? 限定在线性表的一端(表尾)进行插入 在线性表的另一端(表头)进行删除 在队列中允许插入的一端叫队尾(rear) 允许删除的一端叫队头(front) 所以:对尾插入 队头删除队列的特点 队列也是一种线性结构 对队列的操作按照“先进先出”的原则进行取队头 读取非空队列中的队头元素 入队 向队列中插入一个新的元素,新插入的元原创 2015-05-10 15:13:34 · 984 阅读 · 0 评论 -
数据结构 - 队列(二)
循环队列的表示和实现定义 用一组地址连续的存储单元依次存放从队头到队尾的元素。还需要附设两个整型变量:front指示队头元素的位置,rear指示队尾元素的下一个位置算法const int MAXSIZE=128;typedef struct Squeue{ Elemtype elem[MAXSIZE]; int front; int rear; }Squeue;队列的基本形态原创 2015-05-10 16:16:22 · 700 阅读 · 0 评论 -
线性表-链表(四)
一、循环链表什么是循环链表? 最后一个结点的链接又指回头结点(第一个结点)的链表,整个链表形成一个环。与单链表相比,操作时判断最后一个结点的条件为:结点的链接是否为头结点空表 条件:L->next==L非空表 条件 p->next==L二、双向链表-什么是双向链表? 用两个链接表示元素间的逻辑关系,其一指向直接后继,其二指向直接前驱。算法描述typedef struct D原创 2015-05-10 14:02:55 · 934 阅读 · 0 评论 -
数据结构 - 栈
栈的概述什么是栈呢? 限定仅在表尾进行插入或删除操作的线性表。对栈来说,表尾又称栈顶(top),表头又称为栈底(bottom)。不含元素的空表称为空栈。 如:栈S=(a1,a2,…,an),其中a1为栈底元素,an 为栈顶元素栈有什么特点呢? 栈是一种线性结构 对栈的操作按照“后进先出”的原则进行读栈顶元素 非空栈中,读取栈顶元素,不影响栈中元素之间的关系 入栈原创 2015-05-10 17:36:31 · 634 阅读 · 0 评论 -
线性表-链表(三)
一、单链表基本操作(1)清空单链表while(L->next){ p=L->next; L->next=p->next; free(p); }分析:p 指向L的 next 域,L的 next域 在指向 p 的 next 域(p=L->next),其实就是L指向了 L 的 next 的 next 域.然后清空 p 不断循环,知道 L->next == NULL (2)销毁单原创 2015-05-08 22:04:54 · 753 阅读 · 0 评论 -
线性表-链表(二)
一,单链表的插入 (1)单链表如何插入一个新元素呢? 在单链表中 有序对: 变成 图例: 注意:在单链表中插入只需要修改指针。若要在第 i 个结点之前插入元素,修改的是是第 (i-1) 个结点的指针。 (2)单链表的插入元素的代码怎么写呢? 代码如下: Status ListInsert(原创 2015-05-08 18:17:58 · 593 阅读 · 0 评论 -
XML概述
1.XML:xml是一种数据存储格式,这种数据存储格式在存储内容的同时,还能够保存数据之间的关系。2. XML保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系来保存数据之间的关系。3.XML的应用:利用xlm跨平台的特性,用来在不同的操作系统不同的开发语言之间传输数据。如果说java是一门跨平台的语言,那xml就是靠平台的数据。4.xml文件:原创 2015-03-24 19:35:53 · 656 阅读 · 0 评论 -
XML概述(一)
1.XML:xml是一种数据存储格式,这种数据存储格式在存储内容的同时,还能够保存数据之间的关系。2. XML保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系来保存数据之间的关系。3.XML的应用:利用xlm跨平台的特性,用来在不同的操作系统不同的开发语言之间传输数据。如果说java是一门跨平台的语言,那xml就是靠平台的数据。4.xml文件:原创 2015-03-24 19:34:36 · 774 阅读 · 0 评论 -
数据结构(线性表)
数据结构(线性表)原创 2015-03-23 19:24:14 · 468 阅读 · 0 评论 -
数据结构导论(1)
其实就是:算法和思想为什么要研究算法?1.理解算法的重要特性,并考虑细节问题2.对于大规模问题,设计时间和空间都尽可能高效的方法。设计算法的原因1.节省大量的时间和空间2.甚至可能使原本不可能解决的问题得以解决算法分析 1.明确算法基原创 2015-03-23 17:01:17 · 437 阅读 · 0 评论 -
数据结构导论(2)
大O符号记法在分析算法时,省略细节的数学技巧称为O符号。限制忽略数学公式中的低阶项时产生的误差。限制由于忽略对程序的总运行时间贡献较小的某些部分时产生的误差。允许按照算法总运行时间的上界对算法进行分类。在精确运行时间的数学表达式中,还有许多其他项,其中一些难以分析,对于较大N,大O符号提供了原创 2015-03-23 18:10:02 · 521 阅读 · 0 评论