自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 哈夫曼树的理解

给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,则称该二叉树为哈夫曼树,也被称为最优二叉树。 我们首先需要清楚这样一个问题: 用n个数据所构建出来的哈夫曼树,生成的哈夫曼编码的长度最长是多少?  因为哈夫曼编码是根据从根结点到该叶子结点的路径所确定的一个编号,所以生成的哈夫曼编码最长的叶子结点一定是离根结点最远的结点。要使叶子结点里根结点达到最远,那么生成的哈夫曼树应该是斜二叉树。 该斜二叉树中最后一层的叶子结点所生成的哈夫曼编码就是最长的,其哈夫曼编码的长度就是从根结点到达该

2022-05-29 19:44:30 166

原创 N皇后问题

由于皇后的位置受到上述三条规则约束,我们必须通过一些技术手段来判断当前皇后的位置是否合法。 1.皇后的编号从 0 ~ N - 1 (N表示皇后的数量),这样编号的想法很简单:数组下标从0开始(这样方便后续对其位置的说明)。 2.使用一维数组 putInf 对每一行皇后的存放位置进行保存,因此得到解向量 (putInf[0], putInf[1], putInf[3], … , putInf[N - 1]),putInf[i] 表示第 i 个皇后被放置到了第 putInf[i] + 1 列上(putInf

2022-05-29 19:42:34 174

原创 二叉树的构建与遍历

1. 二叉树的定义 二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。 2. 二叉树的遍历 二叉树的存储分为顺序存储和链式存储 。顺序存储在右斜树这种极端情况下,会十分浪费存储空间,顺序存储结构一般适用于完全二叉树。因此二叉树的存储一般会使用链式存储 一、结构体的定义 typedef struct BTNode{ char element; BTNode* left; BTNode* ri

2022-05-24 22:28:15 236

原创 压缩矩阵的转置

#include<iostream> #include<cstdlib> #include<cstdio> #define MAXSIZE 12500 typedef struct{ int i,j; int e; }Triple; typedef struct{ Triple data[MAXSIZE+1]; int mu,nu,tu; //存储矩阵的行数、列数、非零元个数 }TSMatrix; void input(TSMatrix &a..

2022-05-19 21:39:31 128

原创 数据结构——二维数组和矩阵乘法

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

2022-05-19 21:38:18 795

原创 队列(数据结构)

队列,一种特殊的线性表 它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 特点:只允许在一端输入,在另一端输出。输入端称为队尾,输出端称为队头 因此,队列,又称为先进先出表,类似于生活中的排队,先来的排在前头,后来的排在后头,一个一个办理业务。 队列有两种,一种叫做循环队列,另一种叫做链式队列。 1.结构体的定义 typedef struct LinkNode{ int da

2022-05-17 19:07:19 297

原创 递归(汉诺塔问题)

1.输入数字 int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\r\n",paraN); if(paraN<=0){ printf(" 请你输入正确的数字\r\n"); return 0; } else{ tempSum = addTo(paraN -1)+paraN; printf(" return %d\r\n",tempSum); return tempSum; } //

2022-05-12 21:29:40 101

原创 栈的应用.

定义节点 typedef struct CharStack { int top; int data[MAXSIZE]; }*CharStackPtr; 栈的初始化 CharStackPtr charStackInit() { CharStackPtr resultPtr = (CharStackPtr)malloc(sizeof(struct CharStack)); resultPtr->top = -1; return resultPtr; } 入栈 void p

2022-05-10 21:13:22 193

原创 栈....

压栈 void push(CharStackPtr paraStackPtr, int paraValue) { // Step 1. Space check. if (paraStackPtr->top >= MAXSIZE - 1) { printf("Cannot push element: stack full.\r\n"); return; }//Of if // Step 2. Update the to

2022-05-10 21:06:35 110

原创 多项式的加法

创建链表 typedef struct LinkNode{ int coefficient;//系数 int exponent; struct LinkNode *next; } *LinkList, *NodePtr; 创立头节点 LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0;

2022-05-06 20:14:34 99

原创 2.4静态链表

静态链表的定义 typedef struct StaticLinkedNode{ char data; int next; } *NodePtr; typedef struct StaticLinkedList{ NodePtr nodes; int* used; } *ListPtr; 静态链表的初始化 ListPtr initLinkedList(){ ListPtr tempPtr = (ListPtr)malloc(sizeof(StaticLinkedList));

2022-05-03 19:06:48 112

原创 2.3 双向链表

#include <stdio.h> #include <malloc.h> typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next; } DLNode, *DLNodePtr; DLNodePtr initLinkList(){ DLNodePtr tempHeader = (DLNodePtr)ma.

2022-05-03 18:59:47 109

原创 单链表2-2

typedef struct LinkNose{ char data; struct LinkNode *next; } LNode, *LinkList, *NodePtr; 建立一个单链表 LinkList initLinkList(){ NodePtr tempHeader = (NodePtr)malloc(sizeof(LNode)); //在空间里找到一个地址,把这个地址赋值给L tempHeader->data = '\0'; tempHeader->next .

2022-04-29 23:41:26 177 1

原创 数据结构 顺序表

#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 fixed. } *Se.

2022-04-26 21:39:23 145 2

空空如也

空空如也

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

TA关注的人

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