随笔分类 -  数据结构与算法学习之旅

摘要:1 /******************************************************************** 2 * Name: 邻接表(有向网) 3 * Date: 2022.01.19 4 * Author: 吕辉 5 * Description: 邻接表是图的 阅读全文
posted @ 2022-01-19 00:44 吕辉 阅读(376) 评论(0) 推荐(0)
摘要:1 /********************************************************************************** 2 *Name: 邻接矩阵(无向网) 3 *Date: 2022.01.18 4 *Author: 吕辉 5 *Descript 阅读全文
posted @ 2022-01-18 04:11 吕辉 阅读(819) 评论(0) 推荐(0)
摘要:1 /********************************************************************************** 2 *Name: N皇后问题 3 *Date: 2022.01.17 4 *Author: 吕辉 5 *Description: 阅读全文
posted @ 2022-01-17 00:41 吕辉 阅读(57) 评论(0) 推荐(0)
摘要:1.C语言不能像C++一样在函数声明中使用 & 来表示引用传递。 2.C中实际上通过传递指针的地址来间接传递引用。 3.若实参是二重指针,想在函数中修改实参的值,则形参应该是一个三重的指针。 例如: int** A;//二重指针A fun(&A);//传递二重指针的地址 void fun(int** 阅读全文
posted @ 2022-01-15 05:31 吕辉 阅读(120) 评论(0) 推荐(0)
摘要:哈夫曼编码的抽象数据结构 1 typedef struct 2 { 3 int weigth; 4 int parent; 5 int lchild; 6 int rchild; 7 }HTNode, * HuffmanTree;/*动态分配数组存储哈夫曼树*/ 求哈夫曼编码的算法 1 void H 阅读全文
posted @ 2022-01-15 05:19 吕辉 阅读(141) 评论(0) 推荐(0)
摘要:线索二叉树的抽象数据类型 1 enum PointerTag{ Link, Thread }; 2 typedef struct ThreadNode 3 { 4 char data; 5 enum PointerTag LTag; 6 enum PointerTag RTag; 7 struct 阅读全文
posted @ 2022-01-12 03:37 吕辉 阅读(90) 评论(0) 推荐(0)
摘要:二叉树的抽象数据结构 1 typedef struct Node 2 { 3 char data; 4 struct Node* Lchild; 5 struct Node* Rchild; 6 }BTNode;//Binary Tree Node 打印二叉树的叶子结点 1 void PrintLe 阅读全文
posted @ 2022-01-11 01:13 吕辉 阅读(86) 评论(0) 推荐(0)
摘要:指针的值作为条件比较,必须确保指针指向的地址存在。 一旦在条件语句中使用了空指针,编译器不会报错,但执行程序就会出现异常,且这种bug很难发现。 阅读全文
posted @ 2022-01-11 00:30 吕辉 阅读(65) 评论(0) 推荐(0)
摘要:二叉树的抽象数据类型 1 typedef struct Node 2 { 3 char data; 4 struct Node* Lchild; 5 struct Node* Rchild; 6 }BTNode; 按层次非递归遍历 1 void LevelOrder(BTNode* A) 2 { 3 阅读全文
posted @ 2022-01-10 13:57 吕辉 阅读(45) 评论(0) 推荐(0)
摘要:二叉树的抽象数据类型 1 typedef struct Node 2 {/*二叉树*/ 3 char data; 4 struct Node* Lchild; 5 struct Node* Rchild; 6 }BTNode; 先序遍历 1 void PreOrder(BTNode* A) 2 {/ 阅读全文
posted @ 2022-01-10 00:24 吕辉 阅读(71) 评论(0) 推荐(0)
摘要:二叉树的抽象数据类型: 1 typedef char DataType; 2 typedef struct Node 3 { 4 DataType data; 5 struct Node* Lchild; 6 struct Node* Rchild; 7 }BTNode;//Binary Tree 阅读全文
posted @ 2022-01-08 23:57 吕辉 阅读(46) 评论(0) 推荐(0)
摘要:魔方阵是一个古老的智力问题,它要求在一个 N * N 的方阵中填入 1~N²的数字( N 要求为奇数),使得每一行、每一列、每条对角线的累加和都相等。 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib. 阅读全文
posted @ 2022-01-03 23:29 吕辉 阅读(285) 评论(0) 推荐(0)
摘要:数组边界问题通常可以用取余来搞定 阅读全文
posted @ 2022-01-03 22:52 吕辉 阅读(30) 评论(0) 推荐(0)
摘要:结点结构(扩展线性链表) 1 typedef char AtomType; 2 enum ElemTag { ATOM, LIST }; 3 4 typedef struct GLNode 5 {//扩展的线性链表存储结构 6 ElemTag tag; 7 8 union 9 { 10 AtomTy 阅读全文
posted @ 2022-01-03 14:17 吕辉 阅读(146) 评论(0) 推荐(0)
摘要:1. C 不允许返回一个完整的数组作为函数的参数。但是可以通过指定不带索引的数组名来返回一个指向数组的指针。 2. C 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。 阅读全文
posted @ 2022-01-01 21:20 吕辉 阅读(109) 评论(0) 推荐(0)
摘要:1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 typedef struct node 6 { 7 int row; 8 int col; 9 int value; 10 struct 阅读全文
posted @ 2021-12-31 20:11 吕辉 阅读(200) 评论(0) 推荐(0)
摘要:1.结构体变量名代表的是整个集合本身,作为函数参数时传递的整个集合,也就是所有成员,而不是像数组一样被编译器转换成一个指针。 2.如果结构体成员较多,尤其是成员为数组时,传送的时间和空间开销会很大,影响程序的运行效率。所以最好的办法就是使用结构体指针,这时由实参传向形参的只是一个地址,非常快速。 阅读全文
posted @ 2021-12-31 12:18 吕辉 阅读(533) 评论(0) 推荐(0)
摘要:结点是有存储功能的,比较独立的存在。 节点是一连串事件的阶段性标志。 阅读全文
posted @ 2021-12-30 23:32 吕辉 阅读(853) 评论(0) 推荐(0)
摘要:三元组顺序表 1 #define MAXSIZE 1000//稀疏矩阵非零元素个数 2 typedef int ElementType;//稀疏矩阵元素类型 3 4 typedef struct 5 { 6 int row; 7 int col; 8 ElementType value; 9 }Tr 阅读全文
posted @ 2021-12-28 23:49 吕辉 阅读(505) 评论(0) 推荐(0)
摘要:1.实参传入的数组实际上是数组中首个元素的地址。 2.形参声明的数组,并未分配内存空间,只是声明了形参数组的首地址(实参传入)。 3.形参数组的首地址和实参数组的首地址一致,所以能够间接调用。 4.函数不检查数组是否越界,且越界不会报错。 阅读全文
posted @ 2021-12-28 09:56 吕辉 阅读(483) 评论(0) 推荐(0)