数据结构
文章平均质量分 54
vitobo
念念不忘,必有回响
展开
-
树和二叉树
1.树的概念及结构1.1 基本概念树是一种非线性的数据结构,它是由n个有限结点组成一个具有层次关系的集合。有一个特殊的结点,称为根结点,根结点没有前驱结点每棵子树的根结点有且只有一个前驱,可以有0个或多个后继树是递归定义的(根结点+子树)1.2 树的存储表示树有多种表示方式:如:双亲表示法,孩子表示法,孩子兄弟表示法等。常用孩子兄弟表示法typedef int Dat...原创 2020-03-26 10:40:50 · 117 阅读 · 0 评论 -
队列的实现(C语言)
队列的定义队列的顺序存储-->循环队列方案1:牺牲一个单元来区分队空和队满方案2:增设表示元素个数的变量(不牺牲存储单元)方案3:增设tag数据成员区分队空队满(不牺牲存储单元)链式队列的实现带头结点的链式队列不带头结点的链式队列队列的定义队列(Queue) 是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。队列操作的特性:先进先出(Frist In First Out)队列的顺序存储–>循环队列方案1:牺牲一个单元来区分队空和队满实现:// .原创 2021-08-07 23:18:02 · 17948 阅读 · 13 评论 -
栈的实现(C语言)
栈栈的基本概念栈的实现顺序栈的实现链栈的实现(不带头结点)链栈的实现(带头节点)栈的基本概念栈(Stack):是只允许在一端进行插入或删除操作的线性表。栈顶(Top):线性表允许进行插入和删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。栈的实现顺序栈的实现顺序栈:利用数组存放自栈底到栈顶的数据元素,并设top指针指向当前栈顶元素的位置。// 顺序栈的实现#define MaxSize 50 //定义栈中元素的最大个原创 2021-08-03 22:34:33 · 2053 阅读 · 0 评论 -
带头双向循环链表
带头双向循环链表的增删查改实现#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>//带头+双向+循环链表增删查改实现typedef int LTDataType;typedef struct ListNode{ LTDataTyp...原创 2020-02-16 22:11:48 · 164 阅读 · 0 评论 -
单链表的实现(C语言)
链表的概念及结构链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:虽然有这么多的链表的结构,但是我们实际中最常用还是两种结构1.无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希图、图的邻接表等等。2. 带头双向循环...原创 2019-12-15 16:51:59 · 429 阅读 · 0 评论 -
顺序表的实现(C语言)
线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。1.顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般...原创 2019-12-07 23:38:41 · 237 阅读 · 0 评论 -
数据结构-绪论
大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。另外有些算法的时间复杂度存在最好、平均和最坏情况: 最坏情况:任意输入规模的最大运行次数(上界) 平均情况:任意输入规模的期望运行次数 最好情况:任意输入规模的最小运行次数(下界) 平均情况:N/2次找到在实际中一般情况关注的是算法的最坏运行情况,所以数组中搜索数据时间复杂度为O(N原创 2019-11-13 23:54:58 · 204 阅读 · 0 评论