自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言数据结构_prim算法、dijkstra算法

prim算法、dijkstra算法

2022-06-05 10:40:43 242

原创 C语言数据结构_邻接表

邻接表

2022-06-01 13:38:08 514

原创 C语言数据结构_图、图的深度优先遍历、广度优先遍历

图的深度优先遍历和广度优先遍历

2022-06-01 11:02:13 2513

原创 C语言数据结构_N皇后问题回溯法

N皇后问题在一个n * n 的棋盘上每一行都放置一个皇后,使得所有的皇后不在同一列或对角线上。一条红线只能有一个皇后#include <stdio.h>#include <malloc.h>#include <math.h>bool place(int *paraSolution, int paraT){ //判断第paraT行是否在前几行的对角线上或者皇后在同一列上 //如果在对角线上那么第paraT行减去前面的某一行的行数的绝对值等于

2022-05-28 18:59:37 441

原创 C语言数据结构_哈夫曼树

哈夫曼树构造哈夫曼树声明单个结点的信息:权值weight,父节点parent,左孩子lc,右孩子rc组成。以权值分别为4 2 5 9举例第一阶段:我们利用数组的方式来构造哈夫曼树,申请2 * n + 1个内存空间用来存储每一个树结点,注意在存储数据的时候从下标为1开始存储。依次将n个权值分别存储在数组中,parent,lc,rc分别赋值为0。第二阶段:1、在下标为1-4的权值中找到两个权值最小的,并且父结点为0。2、将这两个权值相加形成新的权值并赋值给下标为5的树。3、选取的结点父结点赋

2022-05-28 17:10:55 1325

原创 C语言数据结构_二叉树

二叉树概念:一棵二叉树是结点的一个有限集合,该集合为空,或者是由一个根节点加上两棵称为左子树和右子树的二叉树组成。二叉树的特点:(1)每个结点最多有两棵子树,即二叉树不存在度大于2的结点。(2)二叉树的子树有左右之分,其子树的次序不能颠倒。二叉树的录入:例如将字符串 acde#bfgh######## 存放在二叉树中,#代表NULL。存放规则:从上到下,从左到右依次存储。存储第一层:将首个字符录入到树的根节点,根节点入队。存储第二层:出队(整个二叉树的根节点)作为暂时根节点,如果存储字符

2022-05-24 18:34:27 249 1

原创 C语言数据结构_压缩矩阵、矩阵转置

压缩矩阵、压缩矩阵的转置压缩矩阵实际上就是将一个二维矩阵的非零元素单独记录并存储与之对应的行和列。例如:压缩矩阵的转置:就是将压缩矩阵的行和列交换就可以了,实际的操作就是将转置前的每一列的非零元素记录下来,然后再计算对应的转置后的压缩矩阵每一行对应的首元素的首个相对地址,然后将转置前的第i列赋值给转置后的第i行。注意的是如果转置后的某一行已经赋值了一个元素那么该行的首个元素的相对地址就要加一。例如:#include <stdio.h>#include <malloc.h&g

2022-05-19 16:50:38 709

原创 C语言数据结构_二维数组、二维数组乘法

二维数组、二维数组的乘法二维数组在概念上是二维的,具有行和列,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。在本代码测试静态二维数组的地址时就可以清晰的知道。例如Array[m][n]表示的就是有一个m行n列的二维数组。二维数组乘法的满足条件:第一个数组的列必须等于第二个数组的行。得到的新二维数组的行等于第一个二维数组的行,列等于第二个二维数组的列。相乘公式:#include <stdio.h>#include <malloc.h>

2022-05-19 14:05:28 3971 2

原创 C语言数据结构_队列

链式队列链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 front 和 rear)分别指向链表中队列的队头元素和队尾元素。#include <stdio.h>#include <malloc.h>//链队的结点typedef struct LinkNode{ int data; struct LinkNode* next;}*LinkNodePtr;//链队列typedef struct LinkQueue{ LinkNodePtr front;

2022-05-16 21:22:29 143

原创 C语言数据结构_递归累加、汉诺塔问题

递归的应用一、累加递归:程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

2022-05-12 11:33:13 300

原创 C语言数据结构_栈、栈的应用(括号匹配、表达式求值)

栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。栈的重要操作有进栈,出栈,有后入先出的特点。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。一、栈的实现#include <stdio.h>#include <malloc.h>#define STAC

2022-05-10 19:05:27 313

原创 C语言数据结构_单链表应用(多项式相加)

单链表的应用-多项式的相加该代码的原理:首先创建两个链表tempList1和tempList2分别存放按照指数从小到大一定长度的数据。再申请五个指针p,q,r,s,temp指针p和q分别指向tempList1(tempList2)和tempList2(tempList1),s是free指数相同的结点,r将两个链表的结点相连以及连接free(s)结点的前后两个结点,按照我的代码首先p指向tempList1的第一个结点(头结点的下一个结点)q指向tempList2的第一个结点(头结点的下一个结点),然后进行结

2022-05-05 16:28:59 1717

原创 C语言数据结构_静态链表

静态链表本代码描述首先定义结构体存放该结点的数据和下一个结点的int类型的下标next,通过下标next来访问整个链表。同时再定义一个结构体来表明开辟的空间是否存有数据如果有数据则used的值为1,没有存数据则used的值为0。本质上静态链表就是以数组的形式来存储数据的,只是在存储数据时多了下一个结点的下标。上代码//宏定义整个链表的大小#define DEFAULT_SIZE 5//创建结点typedef struct StaticLinkedNode{ char data; int

2022-05-03 15:15:51 1028

原创 C语言数据结构_双向链表

双向链表1.创建一个双向链表老师的(没有循环)//定义一个双向链表typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;} DLNode, *DLNodePtr;//双向链表的初始化DLNodePtr initLinkList(){ DLNodePtr tempHeader = (DLNodePtr)malloc(s

2022-05-02 21:32:28 1467

原创 C语言数据结构_单链表

单链表1.创建一个头结点并初始化自写的struct Node{ int data; //数据域 struct Node *next; //指针域};//创建一个头节点注意初始化struct Node *createList(){ struct Node *headNode = (struct Node *)malloc(sizeof(struct Node)); headNode->data = '\0'; headNode-

2022-04-29 09:49:24 2532

原创 C语言数据结构_顺序表

C语言数据结构顺序表1.创建顺序表typedef struct SequentialList { int actualLength; int data[LIST_MAX_LENGTH];}*SequentialListPtr;2.顺序表的初始化与动态内存申请SequentialListPtr sequentialListInit(int paraData[], int paraLength) { SequentialListPtr resultPtr = (SequentialListP

2022-04-25 22:55:07 1159

空空如也

空空如也

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

TA关注的人

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