数据结构
ruo_bing
这个作者很懒,什么都没留下…
展开
-
静态顺序表
顺序表:一段地址连续的空间来依次存储元素的线性结构头文件define MAX_SIZE 10typedef int DataType;typedef struct Seqlist{ DataType _array[MAX_SIZE]; int size;//元素的有效个数}Seqlist,*pSeqlist;void InitSeqlist(pSeqlis...原创 2018-05-24 11:31:06 · 152 阅读 · 0 评论 -
动态顺序表
动态顺序表是由静态顺序表演变过来的,唯一的区别在于,动态顺序表可以分配空间,空间不够用时可以增容seqlist.h#define _CRT_SECURE_NO_WARNING_1 //seqlist.typedef int DateType;#define CAPACITY 10#define INCREASE 10typedef struct Seql...原创 2018-06-14 18:08:00 · 158 阅读 · 0 评论 -
静态链表操作与实现
链表:一种链式存储的线性表,用一组任意存储的地址单元来存放线性表的数据元素,称存储单元为一个结点。listnode.h#define CRT_SECURE_NO_WARNING_1#include<malloc.h>#include<stdio.h>#include<assert.h>typedef int DataType;typede...原创 2018-06-15 23:47:09 · 378 阅读 · 0 评论 -
时间复杂度
时间复杂度衡量算法的好坏:时间复杂度和空间复杂度(内存占用)O渐近表达式1.时间复杂度(本质是一个函数,函数计算的是总的执行次数)去掉低次项系数化为1常数都是O(1)2.为什么使用执行次数而不是时间来衡量算法的好坏?因为两个主机的”环境“可能不一样,比如一台此时要执行四个算法,另外一个要执行一个算法,在真正执行时,算法之间还会抢夺cpu分配的时间等。但次数不受影响。F(n) =…...原创 2018-11-14 22:36:41 · 228 阅读 · 0 评论 -
数据结构----堆
堆的基本概念1.如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki &amp;amp;lt;= K2i+1 且 Ki&amp;amp;lt;= K2i+2 (Ki &amp;amp;gt;= K2i+1 且 Ki &amp;amp;gt;= K2i+2) i =0,1,2…,则称为小堆(或大堆)。2.小堆(堆顶元素最小)3.大堆原创 2019-02-28 10:09:17 · 155 阅读 · 0 评论 -
排序
排序(重点:快排,堆排,希尔,归并排序)以及它们的时间复杂度插入排序直接插入排序(洗牌,对已经有序的元素,进来新的时候进行排序)-------O(N方)5 4 3 2 15| 4 3 2 1(第一个数看做有序)4 5| 3 2 1,插入一个数后任然有序3 4 5| 2 12 3 4 5| 11 2 3 4 5时间复杂度:最多搬移n次 ,最多比较n次稳定性:稳定,相邻...原创 2019-02-28 21:17:06 · 148 阅读 · 0 评论 -
二叉树
基本概念1.树的基本概念:除了线性结构的另外一种数据结构,一堆元素的集合,有一个结点叫根结点…结点的度:结点拥有字树的个数结点的层次:根节点到该结点的分支数树的度:树中所有结点最大的度为该树的度树的深度:结点层次最大的个数为树的深度2.二叉树的基本概念和性质二叉树:是结点的一个有限集合,该集合为空,或者由一个根结点加上两颗分别称为坐子树和右子树的二叉树组成特点:每个结点最多有两棵...原创 2019-04-02 20:39:46 · 169 阅读 · 0 评论