![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
夜微雨
落花人独立,微雨燕双飞。
展开
-
[数据结构]---快速排序算法
快速排序算法(时间复杂度:O(nlogn))是在起泡排序的基础上进行改进的一种算法,其实现的基本思想是:通过一次排序将整个无序表分成相互独立的两部分,其中一部分中的数据都比另一部分中包含的数据的值小,然后继续沿用此方法分别对两部分进行同样的操作,直到每一个小部分不可再分,所得到的整个序列就成为了有序序列。快速排序算法通过多次比较和交换来实现排序,其排序流程如下:...原创 2019-08-24 21:18:45 · 438 阅读 · 0 评论 -
[数据结构]---排序总结(简单代码实现 简单图解 总结)
目录排序算法常见的有(7+1)种:下面先介绍前七种:算法一:插入排序(插入排序是一种简单直观的排序方法.)算法二:希尔排序(缩小增量排序)算法三:选择排序算法四:堆排序算法五:冒泡排序算法六:快速排序算法七:归并排序还要介绍一种特殊的排序方法-->计数排序算法八:计数排序排序算法复杂度及稳定性分析:排序算法常见的有(7+1)种:...原创 2019-10-22 15:36:57 · 574 阅读 · 0 评论 -
[数据结构]---堆创建及简单操作
堆特点:堆是完全二叉树. 堆的某个人节点值总是不大于或者不小它的父亲节点的值.堆存储结构和节点关系:堆分为:大堆(大根堆) 小堆(小根堆):上面图可以看出大根堆和小根堆特点: 节点值总是不小于于它的父亲节点的值或者节点值总是不大于于它的父亲节点的值堆操作简述:1.堆向下调整:让调整的结点与其孩子节点进行比较(用于创建堆过程和堆排序)//向下调整 n:数组长...原创 2019-11-24 11:37:35 · 472 阅读 · 0 评论 -
[数据结构]---队列实现(使用链表)
队列队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表队列具有先进先出FIFO(First In First Out) 特点主要操作:入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头实现过程代码实现//Queue.h#define _CRT_SECURE_NO_WARNINGS 1#pragma once#in...原创 2019-09-23 22:12:02 · 261 阅读 · 0 评论 -
[数据结构]---实现栈及栈的基本操作(使用顺序表实现)
栈:栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out即后进先出)的原则。栈的基本结构:栈的基本操作:压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈实现方式:链表...原创 2019-09-20 17:50:57 · 712 阅读 · 0 评论 -
[数据结构]---带头双向循环链表基本功能实现及与单链表,顺序表区别
带头双向循环链表增删查改实现实现功能://初始化void ListInit(List* plist);//申请结点ListNode* BuyListNode();//销毁void ListDestory(List* plist);//尾插void ListPushBack(List* plist, LTDataType x);//尾删void ListPopBa...原创 2019-09-20 14:53:45 · 179 阅读 · 0 评论 -
[数据结构]---图示无头单向不循环链表及有头双向循环链表的一些简单操作
单链表进行以下简单操作.1头插cur->next=head;head=cur;2.头删tmp=head;head=head->next;free(tmp);3.后插cur->next=pos->next;pos->next=cur;4.后删tmp=pos->next;pos-...原创 2019-09-19 00:09:26 · 241 阅读 · 0 评论 -
[数据结构]---C语言实现无头单向非循环链表简单基本操作
C语言实现无头单向非循环链表以下操作://初始化void SListInit(SList* plist);//销毁void SListDestroy(SList* plist);//创建结点SListNode* BuyListNode(SLTDataType x);//头插void SListPushFront(SList* plist, SLTDataType x);...原创 2019-09-08 14:21:21 · 257 阅读 · 0 评论 -
数据结构---C语言实现:带有头结点单向不循环的单链表的基本操作
实现带头结点单链表的基本操作实现以下功能: //初始化 //头插 //尾插 //打印 //查找 //删除 //逆置 //返回倒数第K个结点函数声明://list1 .h#ifndef __LIST_H__#define __LIST_H__//#pragma once#include<stdio.h>#incl...原创 2019-08-17 23:57:47 · 523 阅读 · 3 评论 -
[数据结构]---C语言实现: 顺序表的增删改查等操作
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储。(栈上) 动态顺序表:使用动态开辟的数组存储。(堆上)// 顺序表的静态存储#define N 100typedef int SLDataType;typedef struct SeqList{ SL...原创 2019-09-05 10:28:31 · 1499 阅读 · 0 评论 -
[数据结构]---算法效率,时间复杂度,空间复杂度.
算法效率.一般分为时间效率(时间复杂度),空间效率(空间复杂度)两种。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。时间复杂度算法的时间复杂度是一个函数...原创 2019-09-03 10:33:50 · 816 阅读 · 0 评论