- 博客(11)
- 收藏
- 关注
原创 图的遍历和邻接表
初始化记录数组及深度优先遍历广度优先遍历运行结果运行结果1.图是由顶点集合以及顶点间的关系集合组成的一种数据结构。2.图是按照无方向和有方向分为无向图和有向图。图的遍历方式分为两种:深度优先遍历与广度优先遍历,二者的时间复杂度都是O(n2).创建邻接表打印邻接表遍历运行结果图的邻接表存储方法跟树的链式表示法相类似。这是一种顺序和链式相结合的存储结构。如头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于头结点所
2022-06-01 00:34:53
620
原创 N皇后问题及哈夫曼树
一.N皇后问题1.老师的代码1.1判断位置是否合理bool place(int* paraSolution,int paraT){ int j; for(j=1;j<paraT;j++){ if((abs(paraT-j)==abs(paraSolution[j]-paraSolution[paraT]))||(paraSolution[j]==paraSolution[paraT])) return false; } return true;}此处用到了取绝
2022-05-29 19:03:56
185
原创 二叉树的创建和遍历
一.二叉树二叉树不是树!二叉树的左右子节点是有序的,而树的子节点是无序的。二叉树的性质:1) 二叉树的第i层上最多有2i-1个节点;2)具有n个节点的满二叉树深为log2n+1;3)若在任意一棵二叉树中,有n0个叶子节点,有n2个度为2的节点,则n0=n2+1。1.老师的代码(编译器环境不同,稍稍改动)1.1结构体typedef struct BTNode{ char element; struct BTNode* left; struct BTNode* ri
2022-05-24 23:29:37
743
2
原创 矩阵和矩阵转置
一.矩阵乘1.老师的代码1.结构体typedef struct TwoDArray{ int rows; int columns; int **elements;}*TwoDArrayPtr;typedef struct TwoDStaticArray{ int rows; int columns; int elements[ROWS][COLUMNS];}*TwoDStaticArrayPtr;2.初始化TwoDArrayPtr initTwoDArray(i
2022-05-20 12:45:14
929
1
原创 队列和循环队列
一.队列 1老师的代码#include <stdio.h>#include <malloc.h>typedef struct LinkNode{ int data; struct LinkNode* next;}*LinkNodePtr;typedef struct LinkQuene{ LinkNodePtr front; LinkNodePtr rear;}*LinkQuenePtr;LinkQuenePt...
2022-05-17 09:31:12
210
1
原创 递归 汉诺塔
1.累加1.老师的代码 add详细版int addTo(int paraN){ int tempSum; printf("entering addTo(%d)\r\n",paraN); if(paraN<=0){ printf("return 0\r\n"); return 0; } else{ tempSum=addTo(paraN-1)+paraN; printf...
2022-05-12 15:01:37
117
原创 栈及其应用
1.栈1.1老师的代码 1.1.1结构体typedef struct CharStack { int top; int data[STACK_MAX_SIZE]; } *CharStackPtr; 1.1.2初始化CharStackPtr charStackInit(){ CharStackPtr resultPtr=(CharStackPtr)malloc(sizeof(struct CharStack)); r...
2022-05-10 21:15:02
159
原创 实例:多项式加法
1.老师的代码 1.1结构体typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;}*LinkList,*NodePtr; 1.2初始化LinkList initLinkList(){ LinkList tempHeader=(LinkList)malloc(sizeof(struct LinkNode)); t...
2022-05-05 23:02:18
227
原创 双向链表和静态链表
一,双向链表双向链表每个node都有两个指针,分别指向前驱和后继。从任意一个结点开始,都可以访问它的前驱结点和后继结点。1.老师的代码 1.1结构体typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;}DLNode,*DLNodePtr; 1.2初始化DLN...
2022-05-03 13:20:05
594
原创 线性表的链式表示
链表用一组任意的存储单元存储线性表的数据元素,每个数据元素ai和指向后继的信息组成的存储映像称为结点,每个结点包含数据域和指针域。目录1.老师的代码 1.1结构体 1.2初始化 1.3打印链表 1.4链表尾部加入元素 1.5在指定位置后加入元素 1.6删除结点 1.7测试函数 1.8打印地址函数 1.9运行结果2.自己的代码 ...
2022-04-29 13:46:10
291
原创 线性表第一次作业
掌握线性表相关知识点,理解老师的示范代码,再自己写出相关函数的代码。目录1.线性表的定义及其类型定义 1.1线性表的定义 2.2 线性表的类型定义2.线性表的顺序表示和实现 2.1老师的代码 2.1.1结构体 2.1.2输出线性表 2.1.3输出地址 2.1.4线性表的初始化 ...
2022-04-26 08:59:11
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人