自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图的遍历and邻接表

遍历

2022-06-03 13:58:22 76

原创 哈夫曼树及n皇后

目录哈夫曼树:n皇后问题:哈夫曼树:定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。构建步骤如下: 1、将给定的n个权值看做n棵只有根节点(无左右孩子)的二叉树,组成一个集合HT,每棵树的权值为该节点的权值。 2、从集合HT中选出2棵权值最小的二叉树,组成一棵新的二叉树,其权值为这2棵二叉树的权值之和。 3、将步骤2中选出的2棵二叉树从集合HT中删去,同时将步骤2中新得到的二叉树加入到集合HT中...

2022-05-29 18:20:56 126

原创 二叉树的构建与遍历

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。根结点:根节点没有前驱结点。除根节点外,其余结点被分成是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。因此,树是递归定义的。节点的度:一个节点含有的子树的个数称为该节点的度;叶节点:度为0的节点称为叶节点;非终端节点或分支节点:度不为0的节点;双亲节点或父节点:若一个节点含有子节点,则这个节点称

2022-05-24 20:48:50 92

原创 矩阵乘法&压缩矩阵的转置

目录矩阵乘法:压缩矩阵的转置:矩阵乘法:1、定义三个二维数组来存储第一个矩阵、第二个矩阵和相乘后得到的新矩阵。2、对第一个、第二个矩阵的每个进行赋值(要注意的是我们需要让第一个矩阵的列数等于第二个矩阵的行数),然后将其打印出来。3、使用for循环语句,先遍历第二个矩阵的第j列的每一个元素,然后将其与第一个元素的第i列的每一个元素进行相乘并相加。将其运算后的结果放在对应第i行第j列的新数组中。4、再利用for循环将得到的新数组进行一个元素一个元素的输出。#incl...

2022-05-19 19:15:05 157

原创 链队列、循环队列

队列的定义:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。链队列:代码:#include <stdio.h>#include <malloc.h>typedef struct LinkNode{ int data; LinkNode* next;}*LinkNodePtr;.

2022-05-17 20:14:03 46

原创 ——递归及汉诺塔问题

递归: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(" return %d\r\n", tempSum); return tempSum; }}

2022-05-12 19:11:54 67

原创 栈及栈的应用-(括号匹配、表达式求值)

栈的定义:栈是一种“先进后出”的一种数据结构,有压栈出栈两种操作方式。定义结构体:typedef struct CharStack { int top; int data[STACK_MAX_SIZE]; } *CharStackPtr;输出堆栈:void outputStack(CharStackPtr paraStack) { for (int i = 0; i <= paraStack->top; i ++) { p.

2022-05-10 13:31:14 145

原创 多项式加法

结构体定义:typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} *LinkList, *NodePtr;初始化链表:LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0; tempHea

2022-05-06 10:57:47 56

原创 ---双向链表

双向链表定义:双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。1、初始化链表typedef struct doublelinkednode{ char data; struct doublelinkednode*previous; struct doublelinkednode*next;}dlnode,*dlnodeptr;

2022-05-03 16:44:15 578 1

原创 ——静态链表

定义:静态链表就是借助数组来描述线性表的链式存储结构,此时的数组的分量就是我们自己定义的结构体,数组中的一个分量表示一个结点,同时用游标代替指针描述结点在数组中的相对位置,即数组的分量形式是结点+游标。此外,数组的第0个分量可以看成链表中的头结点,其游标即链表中的指针域则就指向链表的第一个结点。 游标 0 1 2 3 4 ······ ····.

2022-05-03 15:35:09 892 1

原创 2.2单链表

1、引入库typedef struct LinkNode{ char data; struct LinkNode *next;}LNode,*LinkList,*NodePtr;初始化列表,建立头节点LinkList initLinkList(){ NodePtr tempHeader = (NodePtr)malloc(sizeof(LNode)); tempHeader->data='\0'; tempHeader->next = NULL; return te

2022-04-28 15:02:11 679

原创 【无标题】

老师的原代码:#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 fi.

2022-04-25 23:17:01 52

空空如也

空空如也

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

TA关注的人

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