数据结构-C语言版
c语言数据结构
Beiyux
路漫漫其修远兮,一起加油呀
展开
-
数据结构:如何构造哈夫曼树
概要本小结主要讲解哈夫曼树的定义以及其具体的构造过程,带权路径长度WPL的计算方法哈夫曼树的基本概念哈夫曼树也称最优二叉树。1)结点的路径和路径长度路径是指树中一个结点到另一个结点之间的分支构成这两个结点之间的路径。路径长度是指路径上的分支数目。2)树的路径长度从树的根结点到每一个结点的路径长度之和,称为树的路径长度。3)结点的权和带权路径长度树的每一个结点赋予一个具有某种实际意义的实数,称该实数为这个结点的权。在树结构中,把从该结点到树的根结点之间的路径长度与该结点的权的乘积,称为该结点原创 2021-09-13 14:05:14 · 2254 阅读 · 0 评论 -
树和二叉树的基本概念及性质
树的定义是一种非线性结构,是n(n≥0)个结点的有限集合。若n=0,则称为空树;在一棵非空树种:有且仅有一个称之为根的结点,根结点没有直接前驱,但有零个或多个直接后继。除根结点之外的其余结点可被分成m(m≥0)个互不相交的有限集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树,称为根结点的子树。在树的定义中用了递归概念,即用树来定义树。二叉树的定义二叉树是n(n≥0)个结点的有限集合,有且仅有一个称为根的结点;除根结点以外的其余结点分为两个不相交的、被分别称为左原创 2021-09-13 14:02:25 · 197 阅读 · 0 评论 -
数据结构入门基础(算法特性,复杂度)
前言公众号好伙伴们大家好,今天我们给大家带来了一个全新的系列——数据结构,这门课程主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法的分析和评价。不少同学即将接触这样门课程,跟着我们一起带你学好数据结构!数据结构基础数据结构是介于数学、计算机硬件和软件之间的一门核心课程,看看他们的联系基本概念和术语数据(Data):是信息的载体,能够被计算机识别、存储和加工处理。数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一原创 2020-10-21 11:23:56 · 1240 阅读 · 1 评论 -
遍历序列求二叉树
概要:理解二叉树的三种遍历方式,本节主要掌握由两种二叉树遍历序列确定二叉树的方法二叉树的遍历方式先序遍历中序遍历后序遍历原创 2021-02-20 11:05:31 · 411 阅读 · 0 评论 -
二叉树遍历算法的应用
概要主要介绍二叉树相关的代码实现,二叉树遍历算法的具体应用先序遍历建立二叉链表void CreateBitree(BiTNode *&T) { char ch; scanf (“%c”, &ch); if (ch==‘#’) T=NULL; else { T=(BiTree)malloc(sizeof(BiTNode)); T->data=ch; CreateBitree原创 2021-02-06 10:57:37 · 692 阅读 · 0 评论 -
二叉树的存储实现
内容概要这一小节主要介绍二叉树的存储方式,并介绍二叉树这两种存储方式的特点及其存储过程二叉树的存储方式通常二叉树用以下两种方式存储:1.顺序存储结构2.链式存储结构顺序存储结构适用完全二叉树,用一组连续的存储单元按照完全二叉树的每个结点编号的顺序存放结点内容。二叉树的顺序存储表示可描述如下#define MAXSIZE 100 //二叉树的最大结点数typedef TElemType SqBiTree[MAXSIZE];SqBiTree bt;顺序存储结构的特点:二叉原创 2021-01-30 11:55:47 · 451 阅读 · 0 评论 -
二叉树的遍历
简要本小结主要给大家介绍二叉树的遍历,详细介绍先序遍历,中序遍历以及后序遍历这三种遍历的过程及其递归算法的实现遍历二叉树遍历二叉树是指按照某种顺序访问二叉树中的每个结点,使每个结点被访问一次且仅被访问一次。以D、L、R分别表示访问根结点、遍历根结点的左子树、遍历根结点的右子树。二叉树的遍历方式有六种:DLR、LDR、LRD、DRL、RDL和RLD。如果限定先左后右,则只有前三种方式。分别称DLR为先序遍历、LDR为中序遍历和LRD为后序遍历。先序遍历若二叉树为空,则结束遍历操作;否则1)原创 2021-01-30 11:55:20 · 599 阅读 · 0 评论 -
单链表的查找运算
查找操作按序号查找按指定的值查找按序号查找从单链表的第一个元素结点起, 判断当前结点是否是第i个,若是,则返回该结点的指针,否则继续下一个结点的查找,直到表结束为止。 若没有第i个结点则返回空。如果i=0返回头指针。代码实现LinkList Get_List( LinkList L, int i) { //在单链表L中查找第i个元素结点 LNode *p; int j; p=L->next; //原创 2021-01-06 21:19:16 · 2708 阅读 · 0 评论 -
单链表的插入与删除
内容概要本期推文主要给大家介绍数据结构中单链表的插入与删除操作的原理以及其具体的实现过程,学会单链表的创建以及其具体操作实现建立单链表1) 头插法建表将新结点逐个插入链表的头结点之后来创建链表,所以,得到的单链表的逻辑顺序与输入元素顺序相反。2)尾插法建表将新结点逐个插入到链表的尾部来创建链表,因为每次是将新结点插入到链表尾部,需加入一个指针r,用来始终指向链表中的尾结点,以便将新结点插入到链表的尾部。单链表的插入运算1)在指针p所指向结点之后插入新元素。插入操作如下图所示①s->原创 2021-01-06 20:48:52 · 4065 阅读 · 0 评论 -
C语言数据结构-顺序表的链式存储结构
内容概要本期推文主要给大家介绍顺序表的链式存储结构,了解并掌握链式存储结构的特点及基本定义,并学会单链表的基本操作及其初始化方法。特点线性表中的数据元素在存储单元中的存放顺序与逻辑顺序不一定一致通过头指针进入链表,通过结点的指针域访问后继结点,寻找第一个结点和寻找最后一个结点所花费的时间不等,存取方式被称为顺序存取方式单链表的定义链表的每个元素构成一个结点,定义如下:typedef struct Node{ ElemType data; /*每个元素数据信息*/ str原创 2020-12-15 12:05:00 · 979 阅读 · 0 评论