数据结构 C语言
YOLOD_O
这个作者很懒,什么都没留下…
展开
-
排序Java代码
1、直接插入排序package edu.hue.ds.sort;import java.util.Random;/** * @author dongtao * @createTime 2021年08月02日 12:50:00 * @Description 直接插入排序 * * 基本思想: * 每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的合适位置上,直到对象全部插入为止 * 即边插入边排序,保证子序列中随时都是排好序的 */pub原创 2021-12-15 21:27:18 · 868 阅读 · 0 评论 -
元素A,B,C,D按顺序进栈,出栈情况有哪些?
原创 2021-12-12 21:59:37 · 4864 阅读 · 2 评论 -
C语言实现数据结构代码(四)-图-最小生成树
一、普里姆算法1、算法思想 从图中任意取出一个顶点,把它当成一棵树,然后从与这棵树相接的边中选取一条最短(权值最小)的边,并将这条边及其所连接的顶点也并入这棵树中,此时得到了一棵有两个顶点的树。 然后从与这棵树相接的边中选取一条最短的边,并将这条边及其所连顶点并入当前树中,得到一棵有3个顶点的树。 以此类推,知道图中所有顶点都被列入树中为止,此时得到的生成树就是最小生成树。2、普里姆算法执行过程从树中某个顶点v0开始,构造生成树的算法执行过程如下:...原创 2021-12-07 21:57:09 · 922 阅读 · 0 评论 -
C语言实现数据结构代码(四)-图-图的应用
一、设计一个算法,求不带权无响连通图G中距离顶点v最远的一个顶点(所谓最远就是到达v的路径长度最长)。/* 分析: 图的广度优先搜索遍历方式体现了由图中某个顶点开始,以由近向远层层扩展的方式遍历图中结点的过程, 因此广度优先搜索遍历过程中最后一个顶点一定是距离给定顶点最远的顶点,因此只徐修改广度优先搜索遍历算法, 返回最后一个顶点即可。 */ typedef struct{ int adjvex; ArcNode *nextarc;}ArcNode; //边表结构原创 2021-12-07 20:10:22 · 1691 阅读 · 0 评论 -
C语言实现数据结构代码(四)-图-图的遍历
一、深度优先搜索遍历(DFS)基本思想(类似于树的先序遍历):①首先访问出发点v,并将其标记为已访问过;②选取与v邻接的未被访问的任意一个顶点w,访问w;③选取与w邻接的未被访问的任一顶点访问;④以此重复进行。当一个顶点所有的邻接顶点都被访问过时,则依次退回到最近被访问过的顶点。 若该顶点还有其他邻接顶点未被访问,则从这些未被访问过的顶点选取一个重复上述访问过程,直至途中所有顶点都被访问过为止。//邻接表存储的定义表示typedef struct ArcNode..原创 2021-12-06 20:40:30 · 2386 阅读 · 1 评论 -
C语言实现数据结构代码(四)-图-图的存储结构
一、邻接矩阵//邻接矩阵结构体定义typedef struct { int no; //顶点编号 char info; //顶点其他信息,题目中无要求可不写 }VertexType; //顶点类型 typedef struct{ int edge[maxSize][maxSize]; //邻接矩阵定义,如果是有权图,int改为float int n,e; //分别为顶点数和边数 VertexType vex[maxSize]; //存放结点信息 }MGraph原创 2021-12-06 17:32:13 · 1281 阅读 · 0 评论 -
C语言实现数据结构代码(三)-树与二叉树-二叉树-线索二叉树
1、线索二叉树结点构造typedef struct TBTNode{ char data; int ltag,rtag; TBTNode *lcihld; //为0,则指向左孩子;为1,则指向直接前驱 TBTNode *rchild; //为0,则指向右孩子;为1,则指向直接后继 }TBTNode;中序遍历线索化void inThread(TBTNode *p,TBTNode *&pre){ //p指向当前正在访问的结点,pre指向p的直接前驱结点原创 2021-12-03 00:18:39 · 344 阅读 · 0 评论 -
C语言实现数据结构代码(三)-树与二叉树-二叉树-二叉树的应用
树的一些基础代码原创 2021-11-23 23:14:22 · 2144 阅读 · 0 评论 -
数据结构(八)_排序_直接插入排序_Java代码实现
二、代码package edu.hue.ds.sort;import java.util.Random;/** * @author Don-Talk * @createTime 2021年08月02日 12:50:00 * @Description 直接插入排序 */public class DerectlyInsertSort { public static void main(String args[]){ int[] arr = new int[100]; //定原创 2021-08-02 13:15:19 · 184 阅读 · 0 评论 -
C语言实现数据结构代码(一)-线性表-单链表-去除单链表中的重复结点
一、去除单链表中的重复结点#include <iostream>#include <stdio.h>#include <stdlib.h>#include <time.h>using namespace std;//删除单链表中的重复结点typedef struct LNode //单链表结点定义 { int data; LNode *next;}LNode;//创建一个单链表结点 void CreateLNode(LNod原创 2020-12-10 22:40:21 · 614 阅读 · 0 评论 -
C语言代码-仓库电脑存储管理-单链表实现
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <time.h>using namespace std;typedef struct ComputerNode{ int price; //该型号电脑的价格 int num; //该型号电脑的数量 ComputerNode *next; //指向下一型号电脑的指针 }ComputerNode;/...原创 2020-12-10 22:01:03 · 430 阅读 · 0 评论 -
C语言实现数据结构代码(三)-树与二叉树-二叉树-二叉树的定义
目录1.1二叉树的定义1.2二叉树的主要性质1.3二叉树的存储结构1.3.1 顺序存储结构1.1二叉树的定义给一般的二叉树加上两个限制条件就可以得到二叉树:(1)每个结点最多只有两颗子树,即二叉树中结点的度只能为0,1,2。(2)子树有左右顺序之分,不能颠倒。满二叉树 在一棵二叉树中,所有的分支结点都有左孩子结点和右孩子结点,并且叶子结点都集中在二叉树的最下一层。例如,图6-4a就是一颗满二叉树。 完全二叉树 ① 对一棵深度为k的满二.原创 2020-11-06 16:12:45 · 582 阅读 · 0 评论 -
C语言实现数据结构代码(三)-树与二叉树-树-树的基本概念和术语
目录1.2 树的定义1.2 树的基本术语1.3 树的存储结构1.3.1 顺序存储结构1.3.2 链式存储结构1.2 树的定义 树是一种非线性的数据结构。它是若干结点的集合,是由唯一的根和若干棵互不相交的子树组成的。其中,每一棵子树又是一棵树,也是由唯一的根和若干棵互不相交的子树组成的。由此可知,树的定义是递归的,即树的定义中又用到了树的定义。 当树的结点数目为0时,这棵树成为空树。1.2 树的基本术语 结点 A、B...原创 2020-11-06 00:46:43 · 488 阅读 · 0 评论 -
C语言实现数据结构代码(二)-栈和队列-队列-链队的基本操作
#include<stdio.h>#include<stdlib.h>#include<time.h>#define maxSize 100/* 链队,用单链表实现,一定范围内不会出现队列上溢的情况 (1)两个状态 队空: lqu->rear==NULL; 或者 lqu->front==NULL; 队满: 几乎不会,内存满了队才满 (2)两个操作 进队(假设p指向进队元素): lqu->.原创 2020-11-02 00:39:56 · 254 阅读 · 0 评论 -
C语言实现数据结构代码(二)-栈和队列-队列-循环队列的基本操作
#include<stdio.h>#include<stdlib.h>using namespace std;#define maxSize 100/* 顺序队中,通常让 队尾指针rear指向刚进队的元素位置 队首指针front指向刚出队的元素位置 由于普通的队会发生“假溢出”,所以此代码是以循环队列来写的*/typedef struct{ int data[maxSize]; int rear; int front;}SqQu.原创 2020-11-01 22:11:20 · 347 阅读 · 0 评论 -
C语言实现数据结构代码(二)-栈和队列-栈-应用-后缀式计算问题
#include<stdio.h>#include<stdlib.h>using namespace std;#define maxSize 100/* 顺序栈的应用(二) : 求后缀表达式的数值 问题:编写一个函数,求后缀式的数值,后缀式存在一个数组exp[]中, exp中最后一个字符为 "\0",作为结束符,并且假设后缀式中的数字都只有一位, 本题中出现的运算都是整除运算,如2/3=0,3/2=1. 分析: 前缀表达式是将运算.原创 2020-11-01 18:34:09 · 243 阅读 · 0 评论 -
C语言实现数据结构代码(二)-栈和队列-栈-应用-括号匹配问题
#include<iostream>#include<stdio.h>#include<stdlib.h>using namespace std;#define maxSize 100/* 顺序栈的应用(一) : 括号匹配问题 问题:C语言的算术表达式中的括号只有小括号,编写一个算法判断一个表达式中的括号是否配对? 算术表达式已存入数组exp[]中,表达式中字符的个数为 n *///判断数组中的算术表达式中的小括号是否匹配int .原创 2020-10-30 17:38:38 · 615 阅读 · 0 评论 -
C语言实现数据结构代码(二)-栈和队列-栈-基本操作
/* 一、概念 1、栈:只能在一端进行插入或删除的操作受限线性表,允许 插入或删除 操作的一端叫栈顶(Top),表的另一端叫栈底。 特点:先进后出(FILO) 存储结构: 顺序表 ——> 顺序栈 链表 ——> 链栈 栈空: lst->next = NULL; 元素进栈:p->next=lst->next; lst->next=p; .原创 2020-10-30 15:41:55 · 552 阅读 · 0 评论 -
C语言实现数据结构代码(一)-线性表-单链表-去除A中与B相同的元素并保持A递增
/* A、B为两个递增的单链表,设计一个算法,去除A中与B重复的元素 */#include<stdio.h>#include<stdlib.h>#define maxSize 100typedef struct LNode{ int data; LNode *next;}LNode;//创建链表结点 void creatLNode(LNode *&L){ L=(LNode*)malloc(sizeof(LNode)); L->nex.原创 2020-10-30 13:55:04 · 654 阅读 · 0 评论 -
C语言实现数据结构代码(一)-线性表-顺序表-翻转顺序表某段位置元素
/* 将顺序表(数组)某段位置的元素进行翻转 */#include<stdio.h>#include<stdlib.h>#include<time.h>#define maxSize 100//顺序表结构体定义 typedef struct { int data[maxSize]; int length;}SqList;//打印顺序表元素void OutputList(SqList L){ for(int i=0;i<L.len.原创 2020-10-30 12:46:24 · 765 阅读 · 0 评论 -
数据结构(一)线性表-线性表的顺序表示 顺序表 C语言实现
目录1.2.1 顺序表的定义1.2.2 顺序表上基本操作的实现(1)顺序表的建立(2)顺序表元素的插入(3)顺序表元素的删除(4)顺序表的查找1.2.1 顺序表的定义定义:顺序表是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使的逻辑上相邻的两个元素在物理位置上也相邻。特点:表中元素的逻辑顺序与物理顺序相同。 随机访问,即通过首地...原创 2019-11-09 01:32:15 · 666 阅读 · 0 评论 -
数据结构(一)线性表-线性表的定义和基本操作 C语言实现
1.1.1 线性表的定义 线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n=0时,该线性表是一个空表。若用L命名线性表,则其一般表示为: L=(a1,a2,...,ai,ai+1,...,an)式中,a1是唯一的“第一个”数据元素,又称为表头元素;an是唯一的“最后一个”数据元素,又称表尾元素。除第一个元素外,...原创 2019-11-09 00:25:45 · 2097 阅读 · 0 评论