自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 直接控制台(windows)pip下载jupyter notebook改配置问题

改Jupyter Notebook配置的问题

2023-11-26 22:41:41 1030 1

原创 数据结构:邻接表

摘要:邻接表是图的一种链式存储结构。在邻接表中,对图中每个顶点Vi建立一个单链表,把与Vi相邻接的顶点放在这个链表中。邻接表中每个单链表的第一个节点都存放着有关顶点的信息,把这一节点看成链表的表头,其余节点存放有关边的信息,邻接表包括表头结点表和边表。1)抄代码我们今天写的邻接表是有二维数组图结构转化而来的。所以可以将之前的代码现抄过来。2)邻接表的结构体定义3)将图转化为邻接表4)打印邻接表5)广度遍历6)测试函数二、完整代码及运行结果1)完整代码2)运行结果

2022-06-01 13:45:35 3122

原创 数据结构:图的遍历

摘要:图是一种比线性表和树更复杂的数据结构。在图的关系结构中,结点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关。图G有两个集合V和E组成,记为G=(V, E), 其中V是顶点的有穷非空集合,E是V中顶点偶对的有穷集合,这些顶点偶对称为边。V(G)和E(G)通常分别为表示图G的顶点集合和边集合,E(G)可以为空集。若E(G)为空,则图G只有顶点而没有边。1)结构体定义2)循环队列及其操作广度遍历时用到循环队列。3)初始化图4)初始化visited数组5)深度遍历6)

2022-06-01 13:26:42 238

原创 数据结构:哈夫曼树

摘要:给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。一、代码段1)定义结构体typedef struct huffmanTree{ char data; int weight; int lchild,rchild,parent;}HTNode,*huffmanTreePtr;typedef char **huffmanTre

2022-05-29 21:55:13 255

原创 数据结构:n皇后问题

摘要:回溯法解决n皇后问题,要将这n个皇后不能同时放置相同排、列以及对角线。代码:#include <stdio.h>#include <malloc.h>#include <math.h>/** * 判断是否可以放在这里 */bool place(int* paraSolution, int paraT){ int j; for (j = 1; j < paraT; j ++){ if ((abs(paraT .

2022-05-29 21:25:03 67

原创 数据结构:二叉树

摘要:二叉树是由n(n>=0)个节点所构成的集合,是树的特例。二叉树有且仅有一个称之为根的节点,每个节点最多只有两棵子树,子树有左右之分,次序不可任意颠倒。一、代码1)定义 二叉树我们用链式存储的方式带定义,这样的节点有点类似之前学到的双向链表,都有数据域和两个指针域,但是它的两个指针域分别指向两个“后继”,指向它的左儿子节点和右儿子节点。同时我们还定义了一个队列来储存这些树节点的地址,以便我们进行层次遍历。#define QUEUE_SIZE 5/** * 树中的节点定义.

2022-05-24 23:34:24 260

原创 数据结构:压缩矩阵的转置

一、压缩矩阵转置1、定义压缩矩阵存放原矩阵的行数、列数和有效数据的个数。//定义的一个矩阵 typedef struct Triple{ int i; int j; elem e;} Triple, *TriplePtr;//压缩后的矩阵 typedef struct CompressedMatrix{ int rows,columns,numElements; Triple* elements;} CompressedMatrix, *..

2022-05-20 20:53:08 480

原创 数据结构:二维数组与矩阵乘法

前言: 二维数组我们在学习c语言的时候学到过,其实理解二维数组也很容易,相当于在一维的层面上将一排元素视作整体来代替一个元素。接下来我们一起去看看二维数组在数据结构中的操作是怎样的吧!一、代码1、创建矩阵#define ROWS 4#define COLUMNS 5typedef struct TwoDArray{ int rows;//行 int columns;//列 int** elements;} TwoDArray, *TwoDArrayPtr;typedef st

2022-05-20 17:10:21 220

原创 链队列、循环队列

目录一、链队列1.1 定义链表1.2 定义队列1.3 创建一个队列1.4 打印队列1.5 进队列1.6 出队列1.7 测试函数1.8 完整代码及运行结果二、循环队列2.1 定义循环队列2.2 初始化2.3 进队列2.4 出队列2.5 输出队列2.6 测试函数2.7完整代码及运行结果队列的操作与栈的操作相似,但与栈不同的是,队列遵循的是先进先出原则而非先进后出,而且队列的删除(即出队)是在队头进行而非队尾。一、链队列链队...

2022-05-17 20:53:19 996

原创 递归-汉诺塔问题

用递归实现的汉诺塔问题,悄悄告诉你,汉诺塔问题是智商的分界线。一、老师的代码#include <stdio.h>/** * Hanoi. */void hanoi(int paraN, char paraSource, char paraDestination, char paraTransit) { if (paraN <= 0) { return; } else { hanoi(paraN - 1, paraSource, paraTransit, pa

2022-05-12 16:51:50 339

原创 累加的递归实现

今天的代码就是来作的,好好的for语句不用,跑来用递归实现累加,虽说有点多此一举,但是这为我们学习递归作了一个很好的铺垫。一、先看看老师的代码吧!#include <stdio.h>/** * Recursive addition. */int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\r\n", paraN); if (paraN <= 0) { printf(" return 0\

2022-05-12 16:34:12 517

原创 数据结构C:栈、栈的应用——括号匹配、表达式求值

一、栈1、定义栈是限定于仅在表尾进行插入或删除操作的线性表,也称后进先出的线性表。表尾端称为栈顶,表头端称为栈底。没有任何元素的空表叫做空栈。2、操作栈的操作包括入栈和出栈:3、代码及其运行结果代码:#include <stdio.h>#include <malloc.h>#define STACK_MAX_SIZE 10/** * Linear stack of integers. The key is data. */type..

2022-05-10 21:25:18 135

原创 链表——多项式加法

一、老师的代码1、老师的代码#include <stdio.h>#include <malloc.h>/** * Linked list of integers. The key is data. The key is sorted in non-descending order. */typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} *Link

2022-05-06 23:01:30 114

原创 高高兴兴打代码,今天是静态链表

不玩花哨的,直接上代码:#include <stdio.h>#include <malloc.h>#define DEFAULT_SIZE 5typedef struct StaticLinkedNode{ char data; int next;} *NodePtr;typedef struct StaticLinkedList{ NodePtr nodes; int* used;} *ListPtr;/** * Initialize the

2022-05-03 21:02:50 85

原创 纯手撸の双链表,希望对你有所帮助

前言:就编者而言,双联表无非就是在单链表的基础上多了一个指向前驱的指针域罢了,在处理上基本和单链表类似,但其中又有一些新的东西,例如已知一个中间的节点,就可以知道它的前一个节点,这意味着双链表既可以正向遍历也可以倒过来。接下来我们就来看看代码吧!目录一、老师の代码(未加以改动)1.11.2定义双链表1.3初始化双链表1.4打印链表1.5插入节点の函数1.6删除一个节点1.7测试函数以及地址の打印二、作者小哥哥の代码2.1定义、初始化和打印链表2.2 插入一..

2022-05-03 20:50:54 592

原创 纯手撸の单链表,你值得拥有

目录一、老师写の代码1.1代码(作者稍稍进行了改动):1.2定义一个链表1.3初始化链表1.4打印链表1.5构造在链表结尾增加节点的函数1.6构造插入节点的函数,插入节点1.7删除节点的函数,删除节点1.8对以上三个函数的测试函数(先用appendElement函数增加节点,再分别测试了insertElement函数和deleteElement函数)1.9在main函数中来测试二、我写の代码(我们先一部分一部分来看,最后有完整代码)2.1定义一个链表...

2022-04-29 20:39:44 628

原创 线性表作业

老师的代码:#include <stdio.h>#include <malloc.h>#define LIST_MAX_LENGTH 10/** * Linear list of integers. The key is data. */typedef struct SequentialList { int actualLength; int data[LIST_MAX_LENGTH]; //The maximum length is fixe

2022-04-25 23:00:17 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除