自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 7.3: Prim 算法与 Dijkstra 算法

1

2022-06-05 15:35:21 202

原创 7.2邻接表及广度优先

1

2022-06-05 15:33:06 148

原创 7.1图的遍历

1

2022-06-05 15:30:30 264

原创 6.3 n后问题

n后问题: 1.问题描述: 在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一斜线上的棋子。n后问题等价于在n×n格的棋盘上放置n个皇后,任何2个皇后不放在同一行或同一列或同一斜线上。 2.算法设计: 用n元组x[1:n]表示n后问题的解。其中,x[i]表示皇后i放在棋盘的第i行的第x[i]列。由于不允许将2个皇后放在同一列上,所以解向量中的x[i]互不相同。2个皇后不能放在同一斜线上时问题的隐约束。 若两个皇后放置的位置分别是(i,j)和(k,l)

2022-05-29 18:52:02 75

原创 6.2哈夫曼树编码与解码

哈夫曼树相关的几个名词 路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。图 1 中,从根结点到结点 a 之间的通路就是一条路径。 路径长度:在一条路径中,每经过一个结点,路径长度都要加 1 。例如在一棵树中,规定根结点所在层数为1层,那么从根结点到第 i 层结点的路径长度为 i - 1 。图 1 中从根结点到结点 c 的路径长度为 3。 结点的权:给每一个结点赋予一个新的数值,被称为这个结点的权。例如,图 1 中结点 a 的权为 7,结点 b 的权为 5。 结点的带权路径长度:指的是从根结点到

2022-05-29 18:49:12 599

原创 6.1: 二叉树的构建与遍历

二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分[1]。 二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个节点 二叉树有四种遍历方...

2022-05-24 19:30:15 61

原创 压缩矩阵的转置

详见:http://data.biancheng.net/view/97.html 拿图 1 中的矩阵 A 和 B 来说,其各自用三元组顺序表表示(分别用 a 和b 表示),如下图所示: 图2 矩阵 A、B的三元组顺序表 在三元组表的存储形式下,求稀疏矩阵 A 的转置矩阵 B ,实际上就是求由 a 得到 b: 由 a 的行数、列数以及非 0 元素数可以直接得到 b 的列数、行数和非 0 元素数。 由 a 中的数据得到 b 中的数据,可采用两种方法实现: 对 a 中的数据进行遍历,.

2022-05-19 17:12:27 91

原创 5.1二维数组与矩阵乘法

1.动态二维数组 typedef struct TwoDArray { int rows; int columns; int** elements; }TwoDArray, * TwoDArrayPtr; 2.静态二维数组 typedef struct TwoDStaticArray { int rows; int columns; int elements[ROWS][COLUMNS]; }TwoDStaticArray, * TwoDStaticArrayPtr; 3.总代码 .

2022-05-19 17:05:29 61

原创 数据结构3.6链队列,3.7循环队列

3.6链队列 转载:链队列与链表相似,不同的是它具有对列的运算方法,存储结构和链表相同,下面是其结构示意图: 这里的*Q类似于链表的头节点*head;它包含两个指向队列节点的指针front和rear;当front和rear都为NULL时队列为空;front指向队列第一个节点,rear指向最后一个节点,当两者指向同一个节点说明队列只有一个节点; 还有不设头指针的链队列表示形式,这里不予说明; 代码部分: #include<stdio.h> #include<malloc.h&g.

2022-05-16 19:32:31 262

原创 3.4累加求值 3.5汉诺塔问题

利用递归的思想实现 累加求值 #include<stdio.h> //函数从0加到n int addTo(int paraN) { if (paraN <= 0) { return 0; } else return addTo(paraN - 1) + paraN; } void addToTest() { int n, sum; printf("---- addToTest begins. ----\r\n"); n = 5; sum = addTo(n)

2022-05-12 11:12:58 67

原创 3.3表达式求值

表达式求值要创建2个栈 还不会写c++,临摹学长c++代码 //202031061018 刘知鑫 #include <iostream> #include <cstring> #include <algorithm> #include <stack> #include <unordered_map> using namespace std; stack<int> num; stack<char> op; void

2022-05-10 21:08:19 190

原创 数据结构3.2栈---括号匹配

3.2栈的应用---括号匹配1. 介绍2.代码部分,判断括号是否匹配3.测试4.全部代码5.测试结果 1. 介绍 3.2栈的应用—括号匹配 现在,有一行括号序列,里面只包含()[]{}六种符号,请你检查这行括号是否配对。如: []是匹配的 ([])[]是匹配的 ((]是不匹配的 ([)]是不匹配的 2.代码部分,判断括号是否匹配 bool bracketMatching(char* paraString, int paraLength) { //1.初始化一个栈,把'#'压入栈 CharStackPt

2022-05-09 20:05:29 434

原创 数据结构C语言:3.1栈

3.1栈 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。1.创建结构体2.输出栈3.初始化栈4.添加元素5.弹出元素,并返回被弹出元素的值6.添加弹出元素测试7.总代码8.运行结果 1.创建结构体 typedef struct CharS

2022-05-09 18:15:38 98

原创 2.4多项式相加

2.4多项式相加1.定义结构体2.初始化3.打印链表4.打印结点5.构造多项式6.计算多项式相加7.测试8.全部代码9.运行结果 思路:根据多项式相加的运算规则:对两个多项式中所有指数相同的项,对应系数想加,若其和不为零,则作为“和多项式”中的一项插入到“和多项式”链表中去;对于两个多项式中指数不相同的项,则将指数较小的项插入到“和多项式”链表中去。 “多项式”链表中的节点无需生成,而应该从两个多项式的链表中摘取 1.定义结构体 typedef struct LinkNode { int coeffici

2022-05-05 17:31:52 374 1

原创 2.3双向链表

2.3双向链表1.定义结构体2.初始化3.打印4.插入5.删除6.插入删除测试7.地址测试8.完整代码9.运行结果 1.定义结构体 ​ typedef struct DoubleLinkedNode { char data; struct DoubleLinkedNode* previous; struct DoubleLinkedNode* next; }DLNode,*DLNodePtr; ​ 2.初始化 ​ DLNodePtr initLinkList() { DLNodePtr temp

2022-05-05 15:25:27 58

原创 静态链表实现

1.定义结构体 typedef struct StaticLinkedNode { char data; int next; }*NodePtr; typedef struct StaticLinkedList { NodePtr nodes; int* used; } *ListPtr; 2.初始化 ListPtr initLinkedList() { //分配空间 ListPtr tempPtr = (ListPtr)malloc(sizeof(StaticLinkedList))

2022-05-02 20:26:53 619 1

原创 单链表实现

单链表

2022-04-28 12:54:04 75

原创 线性表六六六

线性表

2022-04-25 23:07:35 196

空空如也

空空如也

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

TA关注的人

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