数据结构
文章平均质量分 64
而塞过
代码创造世界
展开
-
图的系统实现(深度/广度遍历)
前言图的最小系统的操作 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出主要函数建立无向图的邻接存储表无向图的数据输出深度优先广度优先代码实现#include <stdio.h>#include <stdlib.h>#define Max 100#define True 1#define False 0typedef char VertexType;int visited[Max];//边信息typedef s.原创 2021-05-30 17:23:33 · 126 阅读 · 0 评论 -
Kruskal算法实现
前言Kruskal算法在求最小生成树上的一个典型算法 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出实现思想将图中的权值按从小到大的顺序排列按照权值大小一次选取,如果未形成回路则将其加入到数组中(保存连通信息的数组)如果已经形成回路则舍弃一直遍历知道连通数组中有n-1条边(最小生成树)代码实现#include <stdio.h>#define Max 100typedef struct { int u; //边的起始顶点 .原创 2021-05-27 00:55:18 · 170 阅读 · 0 评论 -
图的总结
前言谨以此文来记录数据结构关于图的学习 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出有关图的操作算法邻接矩阵的实现#define MAX_VERTEX_NUM 100 //定义最多顶点数目typedef char VertexType; //顶点类型typedef struct{ int vernum,arcnum; //顶点数和弧长 VertexType Vertex[MAX_VERTEX_NUM]; //顶点信息 int Edge[MAX_VERT.原创 2021-05-23 01:34:11 · 69 阅读 · 0 评论 -
Prim算法实现
前言Prim算法在求最小生成树上的一个典型算法 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出实现思想设置两个集合,U集合(在生成树中的结点),V-U集合(不在生成树中的图节点)选择一个结点作为生成树的结点,并放入U集合找到与根节点相连权值最小且不在U集合中结点,并加入到U中重复操作n-1次代码实现#include <stdio.h>//最大顶点数#define MAX 100//代表无穷大#define M 32767 /*=.原创 2021-05-16 15:45:42 · 253 阅读 · 0 评论 -
图的邻接矩阵和邻接表存储及实现
前言因为工作的需要深刻认识到了数据结构的重要性,故现在重新学习了数据结构相关知识,谨以此文来总结一下图的存储知识 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出图的存储类型邻接矩阵(无向图/有向图)利用数组的方式来存储,适合稠密图的存储,表示方式唯一,但是时间复杂度较高,无向图的邻接矩阵是对称的,可以利用上三角/下三角来压缩存储邻接表(无向图/有向图)是顺序存储和链式存储相结合的一种存储方式,使用于稀疏图,表删方式不唯一,时间复杂度低邻接多重表(无向图)十字.原创 2021-05-16 13:40:09 · 4472 阅读 · 3 评论 -
数据结构__树的学习及宠物店功能实现
前言因为工作的需要深刻认识到了数据结构的重要性,故现在重新学习了数据结构相关知识,谨以此文来总结一下树的操作和基本知识 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出二叉树的存储结构和算法应用1.二叉树的节点的定义typedef struct tnode{ Item item; //保存的数据 struct trnode *left; //左子树 struct trnode *right;.原创 2021-04-15 22:25:24 · 210 阅读 · 0 评论 -
数据结构___malloc与free的合理运用
概要最近经常感受被 Segmentation fault (core dumped)支配的恐惧,故就对此进行查询,以自己的了解来谈谈令我害怕的段错误 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出要知道这个错误的名称:段错误,发生这种错误的主要原因是因为访问了错误的内存地址,或者内存地址未初始化。我们可以通过虚拟内存空间来更深层次的了解什么要对内存地址初始化我们利用malloc 其本质是调用底层的sbrk函数实现,返回一个void *类型的指针,是该元素的首地址 分配的空间原创 2021-03-29 22:54:15 · 151 阅读 · 0 评论 -
数据结构___栈和队列的学习总结
概要因为操作的需要现在重新学习了数据结构相关知识,故以此文来总结一下栈和队列的操作和基本知识 声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出栈和队列的基本概念和实现1.栈的基本概念栈的定义:栈是一种只能在一端进行插入和删除的线性表。其中允许进行插入和删除的一端称为栈顶栈的特点:先进后出(FILO)栈的存储结构:顺序栈和链式栈,实际上栈的本质是线性表,不过是加了操作限制2.队列的基本概念队列的定义:和栈类似都是操作受限制的线性表,只允许在一端进行插入(队尾:rea原创 2021-03-26 13:16:20 · 2475 阅读 · 0 评论 -
数据结构___线性表的学习总结
概要因为操作的需要现在重新学习了数据结构相关知识,故以此文来总结一下线性表的操作和基本知识 (很多函数linux内核已经设置了errno)声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出线性表的基本概念和实现1.线性表的定义线性表:具有相同特性的数据结构的元素组成的有限序列;线性表长度:序列中的元素个数,用(n >= 0)表示,n可以为0,表示为空表;2.线性表的逻辑特性线性表只有一个表头元素和表尾元素,表头元素没有前驱,表尾元素没有后继,其余元素都只有一个直接原创 2021-03-21 15:05:47 · 2216 阅读 · 0 评论 -
数据结构___链表的操作
概要因为操作的需要现在重新学习了数据结构相关知识,故以此文来总结一下链表的基本操作和基本知识声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出数据结构(抽象到具体)提供类型属性和相关操作的抽象描述。这种抽象的描述被称为抽象数据结构即ADT(Abstract Data Type)开发一个实现ADT的编程接口(指明数据如何存储和执行的函数)编写代码的实现接口具体流程1.建立抽象初始化一个空链表在链表末尾添加一个新项确定链表是否为空确定链表是否为满确定链表中的项数原创 2021-03-11 23:09:45 · 444 阅读 · 0 评论