
数据结构
正弦定理
虽然我很笨,但是我努力还行。
展开
-
数据结构——无向图创建邻接表以及深度遍历、广度遍历(C语言版)
数据结构——无向图创建邻接表以及深度遍历、广度遍历一、邻接表概念二、创建邻接表一、邻接表概念在无向图中,顶点存储在顶点表中,以一个顶点为标记,指向边链表,两者组合在一起,称为 邻接表对无向图的每个顶点vi建立一个单链表,第i个单链表中的结点表示依附于顶点vi的边(对于有向图则是以顶点vi为尾的弧)。这个单链表就称为顶点vi的边表(对于有向图则称为出边表)边表的头指针和顶点的数据信息采用顺序存储(称为顶点表)邻接表中存在两种结点:顶点表结点和边表结点顶点表结点由顶点域(data)和指向第一条原创 2020-12-22 20:55:12 · 14560 阅读 · 8 评论 -
数据结构—无向图创建邻接矩阵、深度优先遍历和广度优先遍历(C语言版)
无向图创建邻接矩阵、深度优先遍历和广度优先遍历一、概念解析:(1)无向图:(2)邻接矩阵:二、创建邻接矩阵:三、深度遍历、广度遍历(1)深度遍历概念:(2)广度遍历概念:四、实例展示一、概念解析:(1)无向图:假设图G由两个集合V和E组成,记为G={V , E}。其中V是顶点的有限集合,E是连接V中两个不同顶点的边的有限集合。如果E中的顶点对是有序的,即E中的每条边都是有方向的,则称G是有向图。如果顶点对是无序的,则称G是无向图(2)邻接矩阵:邻接矩阵主要由:二维数组 实现如图转原创 2020-12-19 17:25:49 · 49445 阅读 · 8 评论 -
数据结构——计算节点个数和二叉树高度(C语言版)
数据结构——计算节点个数、二叉树高度一、计算各种节点(1)计算总节点:(2)计算单分支节点:(3)计算双分支节点:二、计算二叉树高度代码实现:一、计算各种节点二叉树结构体如下:// 二叉树结构体 typedef struct TreeLink{ int Data; struct TreeLink *LChild; struct TreeLink *RChild;}T_LINK,*TLINK; (1)计算总节点:让根节点指针开始,进行二叉树的遍历,遍历树节点中不为NULL下,及存原创 2020-12-12 23:27:09 · 4663 阅读 · 3 评论 -
数据结构——二叉树根节点到特定节点路径(C语言版)
二叉树——根节点到特定节点路径查找一、思路二、代码实现一、思路使用二叉链表创建的二叉树,这里我的思路是用链栈来存放找寻二叉树特定节点中,用来存放节点元素个人思路:创建链栈,遍历二叉树并把路径中节点元素存放到栈中(如下图所示):L 为一开始创建的链栈头指针flag = 1,作为标记符,表示还没在一条路径中,找到要找的特定节点元素二、代码实现思路理解不了,可以结合运行结果图,加上自己画图理解,运行结果在最下方#include<stdio.h>#include<s原创 2020-12-10 21:09:43 · 7517 阅读 · 10 评论 -
数据结构——二叉树先序、中序、后序及层次四种遍历(C语言版)
数据结构——二叉树先序、中序、后序三种遍历二叉树先序、中序、后序三种遍历三、代码展示:二叉树先序、中序、后序三种遍历先序遍历:3 2 2 3 8 6 5 4中序遍历:2 2 3 3 4 5 6 8后序遍历: 2 3 2 4 5 6 8 3三种遍历不同之处在,输出数据放在不同之处三、代码展示:#include<stdio.h>#include<stdlib.h>typedef struct Tree{ int原创 2020-12-09 17:08:48 · 367041 阅读 · 453 评论 -
数据结构——二叉链表创建二叉树(C语言版)
数据结构——二叉链表创建二叉树一、思想(先序思想创建):二、创建二叉树(1)传一级参数方法一、思想(先序思想创建):第一步先创建根节点,然后创建根节点左子树,开始递归创建左子树,直到递归创建到的节点下不继续创建左子树,也就是当下递归到的节点下的左子树指向NULL,结束本次左子树递归,返回这个节点的上一个节点,开始创建右子树,然后又开始以当下这个节点,继续递归创建左子树,左子树递归创建完,就递归创建右子树,直到递归结束返回到上一级指针节点(也就是根节点下),此时根节点左边子树创建完毕,开始创建右边子树,原创 2020-12-08 15:36:21 · 63563 阅读 · 15 评论 -
数据结构学习——链表(C语言版)
数据结构学习——链表的简单解析一、何为链表(1)概念:(2)特点:二、链表的简单实现(1)头插法:(2)尾插法(3)模拟学生管理系统:一、何为链表(1)概念:链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(原创 2020-11-29 17:08:08 · 1109 阅读 · 0 评论 -
数据结构学习——顺序栈和链式栈的简单实现和解析(C语言版)
数据结构——栈的简单解析和实现一、概念二、入栈(push)三、出栈(pop)四、顺序栈简单实现(1)进栈操作(2)出栈操作一、概念本篇所讲解的栈和队列属于逻辑结构上的划分。逻辑结构分为线性结构、非线性结构线性结构:有且仅有一个开始节点和一个终端节点,每个节点最多只有一个直接前驱和一个直接后继。代表结构:栈、队列非线性结构:一个节点可能有多个直接前驱和多个直接后继。代表结构:树、图堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称原创 2020-11-26 21:26:49 · 1324 阅读 · 6 评论 -
数据结构学习——链式队列解析(C语言版)
数据结构——链队列解析过程和简单代码实现:一、简单概念:动图展示:(1)入队:(2)出队:二、顺序队列:思路步奏:(1)入队操作:(2)出队操作:简单实现代码:三、链式队列(1)声明(2)入队操作:(3)出队操作:(4)检查队列是否为空:全部代码:一、简单概念:队列,又称为伫列(queue),是先进先出(FIFO,First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作队列的操作方式和原创 2020-11-26 21:07:08 · 1645 阅读 · 2 评论