数据结构
wh_0727
这个作者很懒,什么都没留下…
展开
-
数据结构:顺序表基础操作
线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表在逻辑结构上相邻的元素存储在连续的物理存储单元中,即:通过数据元素物理存储的连续性来反应元素之间逻辑上的相邻关系。采用顺序存储结构存储的线性表通常简称为顺序表。 顺序存储的线性表的特点: 1.线性表的逻辑顺序与物理顺序一致; 2. 数据元素之间的关系是以元素在计算机内“物理位置相邻”来...原创 2018-11-06 20:21:16 · 169 阅读 · 0 评论 -
数据结构习题(1):单链表
(部分基于之前的代码) 1.设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。int InsertSort(PDSeqList pl,ELEM_TYPE val){ if(pl == NULL) { return false; } int index = 0; for(int i = 0; i < pl->cur...原创 2018-11-07 20:34:56 · 887 阅读 · 0 评论 -
数据结构:归并排序、基数排序
1.归并排序:是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 例:设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1第一次归并后...原创 2018-11-07 13:26:09 · 318 阅读 · 0 评论 -
数据结构:交换排序(冒泡排序、快速排序)
1.冒泡排序,它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该...原创 2018-11-06 22:04:40 · 264 阅读 · 0 评论 -
数据结构:选择排序(简单选择排序、堆排序)
1.简单选择排序:指一种排序算法,在简单选择排序过程中,所需移动记录的次数比较少。最好情况下,即待排序记录初始状态就已经是正序排列了,则不需要移动记录。方法是设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。 2.堆排序:是指利用堆这种数据结构所设计的一...原创 2018-11-06 21:56:23 · 399 阅读 · 0 评论 -
数据结构:插入排序(直接插入、希尔排序)
1.直接插入排序 :是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。 基本思想:直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将待比较的数值与它的前一个数值进行比较,所以外层循环是从第二个数值开始的。当前一数值比待比较数值大的情况下继续循...原创 2018-11-06 21:49:06 · 259 阅读 · 0 评论 -
数据结构:串
1、串的概念 字符串简称串,是一种特殊的线性表,它的数据元素仅由一个字符组成。2、串的定义 串(String)是由零个或多个字符组成的有限序列,又称字符串。 其中s是串名,用双引号括起来的字符序列为串值,但引号本身并不属于串的内容。ai(1<=i<=n)是一个任意字符,它称为串的元素,是构成串的基本单位,i是它在整个串中的序号;n为串的长...原创 2018-11-06 21:28:26 · 475 阅读 · 0 评论 -
数据结构:循环队列
为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列 (图来自网络)本篇 rear表示队尾位置的下一个位置; front表示当前队头的元素位置;循环队列函数实现:1.初始化2.判满3.入队4.判空5.出队6.清队 #in...原创 2018-11-06 21:18:19 · 145 阅读 · 0 评论 -
数据结构:链队
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。因为队列只允许在一段插入,在另一端删除,所以只有...原创 2018-11-06 21:11:40 · 386 阅读 · 0 评论 -
数据结构:栈、链栈
栈的插入和删除只在栈顶进行操作,在单链表中,头指针是单链表的必须元素;而在栈中,栈顶指针也是链栈的必须元素,且一般将栈顶放在单链表的头部。 线性表有顺序存储结构和链式存储结构,栈属于线性表的一种,也具有顺序存储结构和链式存储结构。对于栈的链式存储结构,一般称之为链栈。栈的特点:先进后出栈函数实现:1.初始化2.判满3.压栈...原创 2018-11-06 21:03:13 · 360 阅读 · 0 评论 -
数据结构:单链表基础操作
函数实现:1.初始化2.尾插3.头插4.按关键字删除5.查找 自定义头文件:typedef int ELEM_TYPE;typedef struct Node{ ELEM_TYPE mdata; struct Node* pnext;}Node, *Link;void Init(Link phead);static Link BuyNode()...原创 2018-11-06 20:26:01 · 156 阅读 · 0 评论 -
数据结构习题(2):单链表
1.寻找单链表倒数第K个节点。Node* find_k(PLink phead, int k){ Node* pfast = phead->pnext; Node* pslow = pfast; for (int i = 0; i < k - 1; ++i) { pfast = pfast->pnext; } while (pfast->pnext...原创 2018-11-07 20:38:16 · 298 阅读 · 0 评论