数据结构
一卒2018
拉拉
展开
-
leetcode二叉树相关
二叉树的三种迭代遍历方式【经典】原创 2020-07-12 14:05:28 · 83 阅读 · 0 评论 -
插入排序
插入排序:思想:每一步将一个待排序的元素,按照其排序码的大小,插入到前面已经排好序的适当位置上去,直至元素全部插入为止。根据查找插入位置方法的不同,分为直接插入法折半插入法Shell排序法1、直接插入法:采用顺序查找的方法查找插入位置。标准版:复制插入元素:x = a[i];记录后移,查找插入位置:for(j=i-1; j>=0 && x&...原创 2020-04-06 14:36:34 · 133 阅读 · 0 评论 -
数据结构与算法基础--第14周15--第8章排序15--各种排序方法比较
//快速排序:void QuickSort(Sqlist *L){ QSort(L, 1, L->length);}void QSort(Sqlist *L, int low, int high){ if(low < high) { int pivot = Partition(L, low, high); QSort(L, low, pivot-1);...原创 2019-12-24 12:18:17 · 149 阅读 · 0 评论 -
数据结构与算法基础--第14周14--第8章排序14--8.6基数排序
基数排序:分配+收集[多关键字排序]原创 2019-12-24 12:10:33 · 150 阅读 · 0 评论 -
数据结构与算法基础--第14周13--第8章排序13--8.5归并排序
归并排序基本思想:将两个或者两个以上的有序子序列“归并”为一个有序序列原创 2019-12-24 11:59:51 · 116 阅读 · 0 评论 -
数据结构与算法基础--第14周09--第8章排序9--8.4选择排序2--堆排序1
堆排序:堆的定义:若n个元素的序列{a1,a2…an}满足堆调整建立堆堆排序原创 2019-12-24 11:42:47 · 210 阅读 · 0 评论 -
数据结构与算法基础--第14周08--第8章排序8--8.4选择排序1--简单选择排序
简单选择排序基本思想:在待排序的数据中选出最大(小)的元素放在其最终位置。基本操作:1.首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换。再通过n-2次比较,从剩余的n-1个记录中找出关键字的记录,将它与第二个记录交换。重复上述操作,共进行n-1趟排序,排序后结束。算法分析简单选择排序是不稳定排序END...原创 2019-12-24 10:17:37 · 189 阅读 · 0 评论 -
数据结构与算法基础--第14周05--第8章排序5--8.3交换排序1--冒泡排序
交换排序基本思想:两两比较,如果发生逆序则交换,直到所有记录都排号为止。常见的交换排序方法:冒泡排序 O(n²)快速排序 O(nlog2n)冒泡排序法————基于简单交换思想基本思想:每趟不断将记录两两比较,并按照“前大后小”规则交换。冒泡排序(升序)第一趟结束:21 ,25 ,25 ,16 ,08 ,49冒泡排序算法冒泡排序的优...原创 2019-12-24 09:58:18 · 190 阅读 · 0 评论 -
数据结构与算法基础--第14周06--第8章排序6--8.3交换排序2--快速排序1
快速排序 — 改进的交换排序基本思想:递归排序任意取一个元素(如第一个)作为中心所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表。对子表重新选择中心元素,并依此规则调整。直到每一个子表的元素只剩下一个。通过一趟排序,将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。具体实...原创 2019-12-24 09:33:57 · 125 阅读 · 0 评论 -
数据结构与算法基础--第14周03--第8章排序3--8.2插入排序2--折半插入排序
>折半插入排序:查找插入位置时采用折半查找法原创 2019-12-22 17:43:15 · 103 阅读 · 0 评论 -
数据结构与算法基础--第14周02--第8章排序2--8.2插入排序1--直接插入排序
>插入排序基本思想:每一步将一个待排序的对象,按照其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。>>插入排序的种类:根据查找插入位置的不同顺序法定位插入位置 —— 直接插入排序二分法定位插入排序 —— 二分插入排序缩小增量多遍插入排序 —— 希尔排序...原创 2019-12-22 17:34:00 · 123 阅读 · 0 评论 -
数据结构与算法基础--第14周01--第8章排序1--8.1排序概述
>排序:什么是排序?将一组杂乱无章的数据按照一定规律顺次排列起来,即:将无序序列排成一个有序序列(由小到大/由大到小)的运算。>>排序方法的分类:1、按数据存储介质:内部排序和外部排序2、按比较器个数:串行排序和并行排序3、按主要操作:比较排序和基数排序4、按辅助空间:原地排序和非原地排序5、按稳定性:稳定排序和非稳定排序6、按自然性:自然排序和非自然排序...原创 2019-12-22 17:06:01 · 214 阅读 · 0 评论 -
数据结构_第02周04--2.4线性表的顺序表示和实现1
线性表的顺序存储结构线性表的顺序存储结构:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。顺序存储的优点:任何一元素均可以随机存储。顺序表内(元素):等价于一维数组地址连续依此存放随机存取类型相同...原创 2019-12-22 16:38:48 · 159 阅读 · 0 评论 -
数据结构_第02周01--2.1线性表的定义和特点
线性表是 具有相同特性的数据元素的有限序列n≥0线性表的逻辑特性1、 线性表的顺序存储问题1:存储空间分配不灵活问题2:运算的空间复杂度高2、线性表的链式存储抽象数据类型:从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然乎实现其存储结构和基本操作。线性表的类型定义1、线性表初始化2、销毁线性表3、清除线性表 为空表4、判断表是否为空5、求线...原创 2019-12-22 16:09:10 · 389 阅读 · 0 评论 -
数据结构_第2章_线性表_王卓老师
数据结构是研究 非数值计算问题当中,如何进行程序设计,所处理的数据元素之间:数据元素之间的关系如何。—逻辑结构一对一 —线性一对多 —树形(非线性)多对多 —图形(非线性)这些具有关系的数据应该如何存储。—存储结构顺序存储结构链式存储结构对数据如何进行操作运算。—运算检索、排序、插入、删除、修改等...原创 2019-12-22 15:44:48 · 556 阅读 · 0 评论 -
数据结构_线性表的链式表示和实现07--单链表基本操作--取第i个元素值
i > MaxSizei >= 1Staus GetElem(LinkList L,int i,ElemType &item){ LNode *p = L->next; int j =1; while(p != NULL && j<i) { p = p->next; j++; } if(p != NULL &a...原创 2019-12-22 15:06:17 · 939 阅读 · 0 评论 -
数据结构_线性表的链式表示和实现06--单链表基本操作--求单链表的表长
单链表长度(结点个数)原创 2019-12-22 13:15:30 · 363 阅读 · 0 评论 -
数据结构_线性表的链式表示和实现09--单链表基本操作--插入节点
总结地址单链表的插入若1与2换,则 a^i 的地址就找不到了原创 2019-12-22 12:41:59 · 142 阅读 · 0 评论 -
数据结构_线性表的链式表示和实现08--单链表基本操作--按值查找
按值查找不管找到没找到 都直接返回p原创 2019-12-22 12:31:09 · 129 阅读 · 0 评论 -
数据结构_线性表的链式表示和实现030405--单链表基本操作
单链表基本操作的实现单链表的初始化(带头结点)即构造一个空表1.生成新结点作为头结点,用头指针指向头结点2.将头结点的指针域设置为空//new 一个结点,返回指向该结点的指针L=new LNode; //C++//申请一块内存空间,大小为结点的大小。再转换成指向结点的指针类型L=(LinkList)malloc(sizeof(LNode)); //C语言补充算法...原创 2019-12-22 12:20:13 · 167 阅读 · 0 评论 -
数据结构_线性表的链式表示和实现02--单链表的定义
总结地址线性表的链式存储结构线性表中数据元素(结点)在存储器上的位置是任意的,即逻辑上相邻的数据元素在物理位置上不一定相邻。链表是 顺序存取 的。—必须结头指针开始找1、带头结点的单链表单链表的存储结构typedef struct LNode{ ElemType data; struct LNode *next; //指向**类型的指针,嵌套的定义}LNode,*L...原创 2019-12-22 11:43:32 · 142 阅读 · 0 评论 -
数据结构_线性表的链式表示与实现01_链表概念
总结地址线性表的链式表示与实现记录第一个地址的指针叫做头指针,顺藤摸瓜找到其他元素的位置。单链表是由头指针唯一确定,因此单链表可由头指针的名字来命名。图中:head指向的是 a 的存储地址。也就是首地址。首元结点中存储的是 a 和其直接后继 b 的地址。每个结点由两个域组成:数据域:存储元素值数据指针域:存储直接后继结点的存储地址。与链式存储有关系的术语:1、结点:数据元素的...原创 2019-12-22 11:21:45 · 248 阅读 · 0 评论 -
数据结构_栈
栈:具有一定操作约束的线性表1、针对于元素:后进先出2、针对于操作:只在栈的一端(栈顶top)进行插入、删除栈的抽象数据类型 描述数据对象集:具有0个或者多个元素的有穷线性表。操作集:长度为MaxSize的栈s∈stack。_栈元素item∈ElemType创建空栈:判断栈空:empty()判断栈满:元素入栈:push()元素出栈:pop()弹出栈顶...原创 2019-12-22 10:31:10 · 140 阅读 · 0 评论