数据结构
azure°
这个作者很懒,什么都没留下…
展开
-
数据结构7--排序
1.排序的稳定性:重复数据的前提下,这两个数据是否进行交换,如果进行交换了,则不稳定;没有进行交换,则稳定。2.内部排序(全部放在内存中) 外部排序(部分放入内存)以内存划分3.分类按不同排序手段插入排序交换排序选择排序归并排序计数排序按时间多少简单排序 O(n^2)先进排序O(log)基数排序O(d*n)4.插入排序直接插入排序:每次从没有排序好的插入到排序好的合适的位置思想:end标记要插入的元素 当end的值小于前一个时,进行交...原创 2021-04-10 23:43:04 · 138 阅读 · 0 评论 -
数据结构1--顺序表
1.数据结构(DS)是什么?数据结构是数据之间的组织架构,数据结构的表现形式:顺序表seqlist、链表list、树tree、图graph、排序sort、搜索search;最终目标是为搜索服务,快速准确的查找想要的数据。2.如何衡量一个算法的好坏?时间复杂度和空间复杂度、3.数据结构的分类(1)顺序结构(线性结构也叫线性表)顺序表 链表 队列 栈(2)非线性结构(关联结构)树、图(3)排序(4)搜索4.线性结构特点:除了第一个元素和最后一个元素之外,其与元素必须.原创 2021-03-26 16:18:02 · 175 阅读 · 1 评论 -
数据结构6-二叉树
根节点父节点叶子结点(终端节点)高度 根节点到最远的叶子结点树的度:每个节点都有度(就是其子节点),最大的节点的度称为树的度森林:相互独立的树 就是树遍历方式:先序 根左右中序 左根右后序 左右根层次先序 ABDFCE 1 2 4 5 10 3 6 13 7 15中序 BFDAEC 4 2 10 5 16 13 3 7 15后序 FDBECA 4 10 5 2 13 6 15 7 3 1...原创 2021-04-06 23:38:07 · 252 阅读 · 0 评论 -
数据结构5--队列
1.特点:队列是先进先出的2.分类:顺序队列、链表队列 (更优一些,因为如果使用数组结构,出队列在数组头上出数据,效率会比较低)3.链表队列:队列的入队,就是链表的尾插(注意元素不存在时),队列的出栈,就是链表的头删(要对只有一个元素时进行特殊处理)//Common.h#ifndef _COMMON_H_#define _COMMON_H_#include <stdio.h>#include <stdlib.h>#include <malloc.h&g原创 2021-04-06 23:37:09 · 87 阅读 · 0 评论 -
数据结构4--栈
1.特点:栈先进后出,栈是受操作限制的顺序表2.栈的实现有两种方式:顺序表(结构更优,因为在尾部插数据代价更小)、链表3.顺序栈(1)有两种top指针的用法:top指针从0开始,先放入数据,再top++;从-1开始,先top++,再放入数据。(2)出栈的时候,只用将top--就行,其值会被下一个插入的值覆盖(3)取栈顶元素的时候不能--top元素(4)栈的入栈,相当于顺序表的尾插;栈的出栈相当于顺序表的尾删。//Common.h#ifndef _COMMON_H_#defi原创 2021-04-06 23:30:59 · 197 阅读 · 0 评论 -
数据结构3--带头节点的双向循环链表
//Common.h#ifndef _COMMON_H_#define _COMMON_H_#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <vld.h>#include <malloc.h>#include <assert.h>typedef int ElemType;#endif//dclist.h#ifndef _.原创 2021-04-06 23:25:09 · 249 阅读 · 0 评论 -
数据结构2--不带头结点的单链表
不带头结点的单链表按值删除注意考虑第一个节点,按值插入注意考虑没有元素时排序时用四个指针: tmp是在排序好的列表里寻找要插入的位置、prev标记tmp的前一个节点、p标记要插入的节点、q标记要插入的节点的下一个节点,每次插入完成之后,都需要将tmp置到第一个结点的位置,prev置空//Common.h#ifndef _COMMON_H_#define _COMMON_H_#include <stdio.h>#include <stdlib.h>#in.原创 2021-03-26 17:07:23 · 1074 阅读 · 0 评论