![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法和数据结构
死磕的斯坦张
Coding everyday。
展开
-
数据结构实验三《构造一个无向图的邻接表》
一、目的和要求(需求分析):1、掌握邻接表的存储结构以及邻接表的建立和操作。2、 构造一个无向图的邻接表,要求从键盘输入图的顶点数和图的边数,并显示所构造的邻接表)基本要求:1. 构造一个无向图的邻接表2.屏幕输出实验拓展:1. 构建有向图的邻接表2. 判断边是否存在3. 求顶点的度数代码#include<cstdio>#include<iostream>#include<iomanip>using namespace std;#define原创 2020-12-30 16:24:29 · 1625 阅读 · 0 评论 -
图的五种存储结构_邻接矩阵和邻接链表的建立
1.邻接矩阵无向带权图的创建(邻接矩阵)typedef char VertexTypetypedef int EdgeType;#define MAXVEX 100;#define INFINITY 65535;//表示无限大typedef struct{ VertexType vexs[MAXVEX]; EdgeType arc[MAXVEX][MAXVEX]; int numVertexes,numEdges;}MGraph;void CreatMGrap原创 2020-12-16 16:28:13 · 750 阅读 · 0 评论 -
二叉树求单一路径总和
二叉树求单一路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1输出返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径原创 2020-12-05 10:37:57 · 169 阅读 · 0 评论 -
对称二叉树的判断
对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3解题思路对于二叉树对称性问题,只要将根节点一边的所有节点的左右子树对调,然后根节点左右子树也就完全相同了,此时只要判断是否为相同二叉树即可。其中对于原创 2020-12-05 10:27:17 · 1123 阅读 · 1 评论 -
还原二叉树
问题:给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5思路:首先读入输入的序列,然后对应生成树Tree* creat(int root,int beg ,int len){ Tree * T;原创 2020-11-24 20:19:38 · 304 阅读 · 0 评论 -
求二叉树高度
函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};要求函数返回给定二叉树BT的高度值。裁判测试程序样例:#include <stdio.h>#include <原创 2020-11-24 15:46:29 · 1999 阅读 · 0 评论 -
数据结构实验二——二叉树的遍历和计算
《数据结构》实验二报告一、目的和要求(需求分析):1、掌握二叉树的存储结构以及二叉树的建立和操作。2、输入一串表达式后,建立二叉树,并对其进行先序、中序和后序的遍历。(输入表达式如此形式:a+b*c-d-e/f….;)3、递归实现表达式运算。二、程序设计的基本思想,原理和算法描述:1.程序的结构:使用二叉树存储输入的表达式,其中叶子节点存储操作数,而其余节点存储运算符,不同层级的运算符则代表运算的先后顺序。2.输入/输出设计:直接从键盘读入若干字符串形式的表达式,以string类型存入,而后原创 2020-11-23 13:16:13 · 1844 阅读 · 1 评论 -
C语言描述:栈结构
栈与队列栈结构顺序栈链式栈队列结构顺序队列链式队列栈结构顺序栈链式栈队列结构顺序队列链式队列创建空栈struct STACK* CreatStack(void){ struct STACK* S=malloc(sizeof*S); S->top=S->bottom=malloc(sizeof*S->top); if(S->top==NULL){ printf("空间分配失败");原创 2020-10-26 19:47:22 · 149 阅读 · 0 评论 -
C语言描述:链式线性表
链表单链表链表的创立插入节点删除节点销毁链表双向链表循环链表链表排序算法单链表链表的创立#include<stdio.h>#include<stdlib.h>#include<string.h>struct NODE{ int data; struct NODE* next;};struct NODE* Creatlink(void);void OutPutLink(struct NODE* head);int main(void){原创 2020-10-22 16:13:46 · 241 阅读 · 0 评论 -
数据结构实验一——单链表的就地翻转
单链表的就地翻转主要步骤1、创立新表2、打印链表3、翻转链表4、销毁链表核心思想对于就地翻转链表,关键就是不创立新的空间,而是将指针的指向一一反转,也就是将链表之间一个个的箭头完全调转方向。下中代码中p,q,t一开始指向前三个结点,然后先是实现,p和q的箭头反转,然后借助t帮助p,q进行步进,直到最后所有箭头反转完成,最后将头结点和完成后的首节点连接。代码演示#include <stdio.h>#include <stdlib.h>#include <io原创 2020-10-22 16:05:50 · 332 阅读 · 0 评论 -
基本数据结构类型介绍——栈,队列,数组,链表,树
数据结构基本数据结构数据结构有什么用?常见的数据结构栈队列数组链表红黑树基本数据结构数据结构有什么用?数据结构本质就是数据与数据之间交互的关系,有的是顺序,有的是链式,有的是单对单的线性表,有的是单对多的的树,或者是多对多的图。总而言之,数据结构的不同,对于具体的算法实现,会产生时间,空间开销的大不同。现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,如果Google的数据用的是数组的存储,我们自然不能方便地查询到所需要的数据了。java是面向对象的语言,就好似自动档轿车,C语原创 2020-10-02 20:10:29 · 1762 阅读 · 0 评论