自定义博客皮肤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)
  • 收藏
  • 关注

原创 数据结构 邻接表及广度优先遍历

1.定义广度优先搜索遍历类似于树的按层次遍历,对于用邻接表做存储结构的图,从某个给定 顶点出发的图的遍历得到的访问结点顶点次序,随建立的邻接表的不同而可能不同

2022-06-01 12:23:23 197

原创 数据结构 图的遍历

。。。

2022-06-01 12:15:09 1077

原创 数据结构 Huffman Tree(哈夫曼树)

1.定义哈夫曼树也可以是k叉的,只是在构造k叉哈夫曼树时需要先进行一些调整。构造哈夫曼树的思想是每次选k个权重最小的元素来合成一个新的元素,该元素权重为k个元素权重之和。但是当k大于2时,按照这个步骤做下去可能到最后剩下的元素少于k个。2.简介在计算机数据处理中,哈夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低

2022-05-29 18:51:49 588

原创 数据结构 N后问题

1.N 皇后问题源自国际象棋,所有棋子中权力最大的称为皇后,它可以直着走、横着走、斜着走(沿 45 度角),可以攻击移动途中遇到的任何棋子。N 皇后问题的具体内容是:如何将 N 个皇后摆放在 N*N 的棋盘中,使它们无法相互攻击。举个简单的例子,将 4 个皇后摆放在 4*4 的棋盘中,下图给出了一种摆放方式,各个皇后无论是直着走、横着走还是斜着走,都无法相互攻击。3.上代码#include<stdio.h>#include<malloc.h>#include<.

2022-05-29 18:45:03 90

原创 数据结构 二叉树与遍历

1.概述二叉树的遍历是一个很常见的问题。二叉树的遍历方式主要有:先序遍历、中序遍历、后序遍历、层次遍历。先序、中序、后序其实指的是父节点被访问的次序。若在遍历过程中,父节点先于它的子节点被访问,就是先序遍历;父节点被访问的次序位于左右孩子节点之间,就是中序遍历;访问完左右孩子节点之后再访问父节点,就是后序遍历。不论是先序遍历、中序遍历还是后序遍历,左右孩子节点的相对访问次序是不变的,总是先访问左孩子节点,再访问右孩子节点。而层次遍历,就是按照从上到下、从左向右的顺序访问二叉树的每个节点。四种主要的遍

2022-05-24 19:03:38 95

原创 数据结构 压缩矩阵的转置

*矩阵转置是矩阵运算中极为重要的操作,但矩阵压缩后我们不能再按原来的方式用n*m的遍历方式进行转置操作,那我们应该怎么进行转置呢,首先想到的是以列为参考值对元素进行遍历转置,这样访问元素的顺序正好是转制后存储的顺序,代码如下:1.定义行列typedef struct Triple { int i; int j; elem e;}Triple, *TriplePtr;2.压缩矩阵CompressedMatrixPtr initCompressedMatrix(int paraRow

2022-05-19 22:46:44 89

原创 数据结构 二位数组与矩阵乘法

1.定义:令A为m*k矩阵,B为k*n矩阵。A和B的乘积,记作AB,是一个m*n矩阵,其弟(i,j)元素等于A的第i行与B的第j列对应元素的乘积之和。换言之,如果AB=[Cij],则 Cij = ai1bi1+ai2b2i+...+aikbkj*注意:AB不等于BA的!!!2.矩阵代码#include<stdio.h>#include<malloc.h>#include<stdlib.h>#define ROWS 4#...

2022-05-19 19:12:52 207

原创 数据结构 循环列队

为充分利用向量空间,克服上述“假溢出”现象的方法是:将为队列分配的向量空间看成为一个首尾相接的圆环,并称这种队列为循环队列(Circular Queue)入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时头尾指针均相等。因此,无法通过front=rear来判断队列“空”还是“满”。☞☞解决此问题的方法是:约定入队前,测试尾指针在循环意义下加1后是否等于头指针,若相等则认为队满。即:◆ rear所指的单元始终为空。◆ 循环队列为空:front=rear 。◆ 循环队列满:(

2022-05-17 15:11:20 93

原创 数据结构 链队列

1.介绍链队列前先来看一下关于的知识点上图介绍了队列的几种变化,空队列时对头队尾指针都指向头指针,插入一个元素x时,队尾指针指向x,头指针也指向x。2.上代码#include<stdio.h>#include<malloc.h>typedef struct LinkNode { int data; LinkNode* next;}*LinkNodePtr;typedef struct LinkQueue { LinkNodePtr front;

2022-05-17 15:08:23 192

原创 数据结构 递归(递归求和and汉诺塔)

一.递归求和1.总代码#include<stdio.h>int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\r\n",paraN); if (paraN <= 0) { return 0; } else{ tempSum = addTo(paraN - 1) + paraN; printf(" return %d\r\n",tempSum); return tempSum;

2022-05-12 14:20:20 237

原创 数据结构 栈的应用-括号匹配

1.创建栈typedef struct CharStack{ int top; int data[SIZE];}*CharStackPtr;2.输出栈(跟踪数据)void outputStack(CharStackPtr paraStack){ for (int i = 0; i <= paraStack -> top; i++){ printf("%c ",paraStack->data[i]); } printf("\r\n");} 3.初始化

2022-05-10 22:49:32 131

原创 数据结构 栈的应用-表达式求值

大佬的代码抄了过来了#include<iostream>#include<cstring>#include<algorithm>#include<stack>#include<unordered_map>using namespace std;stack<int> num;stack<char> op;void eval(){ auto b = num.top(); num.pop(); a

2022-05-10 22:13:36 205

原创 数据结构 多项式相加

1.定义结构体//定义一个结构体 typedef struct LinkNode{ int cofficient;//系数 int exponent;//次方 struct LinkNode *next;//指针 }*LinkList,*NodePtr;2.初始化//初始化(全为空) LinkList initList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode));//申请空间 te

2022-05-05 21:12:03 1052

原创 数据结构 静态链表

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-03 19:56:54 353 1

原创 数据结构 双向链表

1.定义节点typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;}DLNode,*DLNodePtr;2.初始化双向链表DLNodePtr initLinkList(){ DLNodePtr tempHeader = (DLNodePtr)malloc(sizeof(struct DoubleLinkedNo

2022-05-03 14:54:16 466 1

原创 数据结构---链表(***)

1.添加,插入元素思路:2.创建一个结构体typedef struct LinkNode{ char data; struct LinkNode *next;}LNode,*LinkList,*NodePtr;3.总代码#include<stdio.h>#include<malloc.h> /**创建单链表*/ typedef struct LinkNode{ char data; struct LinkNode *next;}.

2022-04-29 10:52:42 107

原创 数据结构--顺序表1(***)

1.定义顺序表typedef struct SequentialList{ int actualLength; //(实际长度) int data[LIST_MAX_LENGTH];//The maxinum length is fixed.(最大值的长度是固定的). } *SequentialListPtr;//(顺序列表Ptr) 2.依次输出顺序表void outputList(SequentialListPtr paraList){ for(int i=0; i&l

2022-04-27 15:45:51 82

原创 数据结构 顺序表(***)

数据结构及C语言

2022-04-25 23:33:50 332

空空如也

空空如也

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

TA关注的人

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