数据结构
superbrucess
天将降大任于斯人也,必先苦其心志!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构 3.27笔记
定义和使用结构体变量1,定义结构体变量1)先声明结构体类型,再定义该类型变量struct Student stu1,stu2;2)声明类型的同时定义变量一般形式:struct 结构体名{成员表列}变量名表列;3)不指定类型名直接定义结构体类型变量一般形式:struct{成员表列}变量名表列;注意:编译时对类型不分配空间;结构体类型中的成员名与程序中的变量名可以相同,意义不同2,...原创 2020-04-07 13:44:24 · 181 阅读 · 0 评论 -
数据结构 4.10 笔记
案例:有三个学生,每名学生有三门科成绩,要求输出平均成绩最高的学生的全部信息,用动态链表存储学生信息代码1:#include “stdio.h”#include “string.h”#include “stdlib.h”struct Student{int number;char name[20];double score[3];double average;};struct...原创 2020-04-10 16:56:01 · 221 阅读 · 0 评论 -
数据结构 3.20 笔记
数据结构 3.20笔记动态内存分配与指向它的指针变量建立内存的动态分配:通过malloc,calloc,free,realloc函数1,用malloc开辟动态存储区函数原型:void *malloc(unsigned int size);作用是在动态存储区分配长度为size连续空间,size为无符号整型,此函数未能执行时,返回空指针(NULL),正常执行返回分配区域第一个字节地址。2,用...原创 2020-04-07 13:27:43 · 215 阅读 · 0 评论 -
数据结构 4.3 笔记
复习:存储结构:变量在内存中的存储方式数组:数组元素在内存中连续存放-----顺序存储结构,可以通过数组某个元素的地址加一个位移偏量来访问其他数组元素静态数组:内存在编译的时候开辟的,大小一旦定义将无法改变,int a[10];动态数组:程序运行期间动态开辟,动态开辟内存,malloc(10*sizeof(int); 如果想改变内存大小,需要用relloc扩充内存元素在内存中随机分配...原创 2020-04-07 18:02:00 · 275 阅读 · 0 评论 -
数据结构 5.29知识点
树和二叉树树的定义树是n(n≥0)个结点的有限集合。若n=0,则称为空树;否则,有且仅有一个特定的结点被称为根,当n>1时,其余结点被分成m(m>0)个互不相交的子集T1,T2,…,Tm,每个子集又是一棵树。由此可以看出,树的定义是递归的。树的应用1)树可表示具有分枝结构关系的对象家族族谱单位行政机构的组织关系2)树是常用的数据组织形式树的基本术语树的结点:包含一个数据元素及若干指向子树的分支;孩子结点:结点的子树的根称为该结点的孩子;双亲结点:B 结点是A 结点的孩原创 2020-05-30 13:15:12 · 286 阅读 · 0 评论 -
数据结构 -4.17 笔记
带有头结点的链表,插入和删除时不需要区分插入删除的位置(链头,链中尾)struct Student{int num;char name[20];double score[3];double average;struct Student * next;};struct Student *head,*n,*p;head=(struct Student *)malloc(sizeof(...原创 2020-04-18 10:08:20 · 305 阅读 · 0 评论 -
数据结构 5.22知识点
队列的两种实现方式—顺序队列、链式队列基本操作:(1)初始化队列 InitQueue(Q)(2)入队 EnQueue(Q,item)(3)出队 DeQueue(Q,item)(4)获取队头元素内容 GetHead(Q,item)(5)判断队列是否为空 QueueEmpty(Q)实现算法—存储结构1、顺序存储结构实现队列队头,队尾指针。front存储队头元素所在下标,当出队时,front++,而rear存储队尾元素的下一个元素的下标,即可以直接入队的下标sq[rear]=e;入队后,原创 2020-05-23 19:41:56 · 321 阅读 · 0 评论 -
数据结构 6.5知识点
表达式求值要了解算术四则运算规则1)先乘除,后加减2)从左算到右3)先括号内再括号外表达式由操作数、运算符、界限符组成,后两个通称为算符,任意相继出现的两个算符r1 r2有优先权的比较(r1代表当前栈顶元素,r2代表表达式中的字符)算符间的优先关系详见课本53页第一步 置操作数栈为空栈,起始符"#"作为运算符栈的栈底元素第二步:依次读入表达式每个字符,利用算符间的优先关系,若r1<r2,r2入栈,继续向后扫描若r1>r2,r1出栈,继续向后比较,直至某一字符入栈若r1=r2原创 2020-06-06 11:23:17 · 262 阅读 · 0 评论 -
数据结构 5.8 知识点
线性结构:线性表 ,n个类型相同的元素,元素间一对一的关系,n可以为0,即空表线性表----算法----顺序存储结构实现(顺序表)----链式存储结构实现(单链表)typedef struct S{ElemType *elem; //指向存放线性表中数据元素的基地址int length; //线性表的当前长度int listsize; //当前分配的存储容量}SqList,*List;struct S a等价于SqList a;stru原创 2020-05-13 19:06:58 · 227 阅读 · 0 评论 -
数据结构---堆栈和队列
顺序堆栈算法:注意状态,要包含头文件,保存时以.h形式保存注意存储空间初始分配量的使用,明确函数返回值含义形参类型主函数测试:运行结果:链式堆栈:运行结果:原创 2020-05-16 10:36:12 · 315 阅读 · 0 评论 -
数据结构 7.1知识点---最短路径、拓扑排序、关键路径
最短路径单源最短路径问题:Dijkstra算法求解思路:设G=(V,E)是一个带权有向图, 把图中顶点集合V分成两组:第1组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径v,… ,u,就将u加入到集合S中,直到全部顶点都加入到S中,算法就结束了)。第2组为其余未求出最短路径的顶点集合(用U表示)。算法演示dist[]集合中每次寻找最小顶点,根据上一次加入的新顶点找出所有通往该顶点的路径。拓扑排序设G=(V,E)是一个具有n个顶点的有向图,V中顶原创 2020-07-02 12:01:03 · 781 阅读 · 0 评论 -
数据结构 6.12知识点-----二叉树的遍历,线索二叉树
二叉树的遍历1、按根、左子树和右子树三部分进行遍历TLR(根左右)、LTR(左根右)和LRT(左右根)根据根访问的位置不同分别被称为先序遍历、中序遍历和后序遍历。2、 按层次遍历二叉树实现方法为从上层到下层,每层中从左侧到右侧依次访问每个结点。下面我们将给出一棵二叉树及其按层次顺序访问其中每个结点的遍历序列。根据先序和中序,中序和后序可以唯一确定一颗二叉树。根据先序、后序带有空结点的可以唯一确定一颗二叉树。二叉树中序遍历的非递归算法代码:p=b;while (栈不空或者p!=NULL原创 2020-06-14 20:18:48 · 317 阅读 · 0 评论 -
数据结构 7.1-7.3知识点----排序、查找
排序一种重要操作,将数据元素(记录)的任意序列,排列成按关键字有序的序列。待排序记录数量不同,将排序方法分为内部排序、外部排序内部排序分类:插入排序、交换排序、选择排序、归并排序、计数排序插入排序直接插入排序算法思想:将待排序的记录Ri,插入到已排好序的记录表R1, R2 ,…., Ri-1中,得到一个新的、记录数增加1的有序表。 直到所有的记录都插入完为止。排序过程演示算法实现算法分析空间复杂度:O(1)时间复杂度:在最好的情况下(待排序记录已经有序,即正序),此时每次循环中原创 2020-07-05 16:08:37 · 273 阅读 · 0 评论 -
数据结构 6.19知识点----线索二叉树、哈夫曼树、图的基本概念
知识点回顾—线索二叉树遍历实际上将非线性的二叉树,线性化的过程某个结点,在某种遍历序列中,找出前驱及后继结点struct BiTNode{//二叉链存储结构中,结点的数据类型定义char data;struct BiTNode *lchild;//左链(指向左孩子结点)struct BiTNode *rchild;//右链(指向右孩子结点)};此时可以利用二叉链存储结构中的空链来存储结点的前驱和后继信息,n个结点的二叉树,在二叉链存储结构中,一定有n+1个空链为了区分左链指向左孩子还是前驱原创 2020-06-19 20:36:32 · 317 阅读 · 0 评论 -
数据结构 6.28知识点 图的遍历、存储结构
图的基本概念路径长度是指路径相同,则这上边或弧的数目。若第一个顶点和最后一个顶点条路径是一条回路,也叫做 环。若路径中顶点没有重复出现,则称这条路径为 简单路径。在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通。如果图中任意两个顶点之间都连通,则称该图为连通图,否则,将其中的极大连通子图称为连通分量。生成树、生成森林概念:结论:完全树一定是生成树,反之不成立。图的存储结构1、邻接矩阵存储2、邻接表每个单链表上添加一个表头结点(表示顶点信息)。并将所有表头结点构成一个原创 2020-06-29 11:52:46 · 465 阅读 · 0 评论
分享