自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图的遍历(数据结构作业)

定义从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历(Traversing Graph)。深度优先遍历深度优先遍历(Depth_First_Search),也有称深度优先搜索,简称DFS。为了理解深度优先遍历,用一个小游戏来说明。假设你要完成一个任务,要求在如图1-1中的左图中这样的一个迷宫中,从顶点A开始要走遍所有的图顶点并做上标记,注意不是简单地看着这样的平面图走哦。而是如同现实般地只有高墙和通道的迷宫中去完成任务。很显然是需要策略的,现在使.

2022-05-30 11:04:44 360 1

原创 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 18:17:47 142

原创 哈夫曼树的理解

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

2022-05-27 21:15:11 153

原创 6.1: 二叉树的构建与遍历

引言树是一种比较重要的数据结构,尤其是二叉树。在这里简单介绍二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。1. 二叉树的定义二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。2. 二叉树的遍历二叉树的存储分为顺序存储和链式存储。顺序存储在右斜树这种极端情况下,会十分浪费.

2022-05-24 18:32:20 879

原创 压缩矩阵的转置运算

矩阵转置的实现思路是:不断遍历存储矩阵的三元组表,每次都取出表中 j 列最小的那一个三元组,互换行标和列标的值,并按次序存储到一个新三元组表中。总代码#include <stdio.h>#include <malloc.h>typedef int elem;/** * A triple for row index, column index, and data. */typedef struct Triple{ int i; in..

2022-05-19 23:29:20 55

原创 二维数组与矩阵算法

两个矩阵只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。过程:将第一个矩阵的第i行的每个元素分别乘上第二个矩阵第j列的每个元素然后进项相加,得到的结果就为新矩阵的第i行第j列的元素。1、首先我们要定义三个二维数组来存储第一个矩阵、第二个矩阵和相乘后得到的新矩阵。2、对第一个、第二个矩阵的每个进行赋值(要注意的是我们需要让第一个矩阵的列数等于第二个矩阵的行数),然后将..

2022-05-19 23:07:13 2351

原创 队列(数据结构)

1.链式队列队列(queue)在计算机科学中,是一种先进先出的线性表。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。...

2022-05-17 14:38:51 247

原创 递归(汉诺塔问题)

一、累加问题使用递归解决问题,思路清晰,代码少。但是在主流高级语言中(如C语言、Pascal语言等)使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制时(如嵌入式系统或者内核态编程),应避免采用。所有的递归算法都可以改写成与之等价的非递归算法。1.输入数字int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\r\n",paraN); if(paraN<=0){ printf(" 请你输入正确的数字\

2022-05-11 21:08:41 93

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

一、括号匹配原理如下:1、扫描整个存储括号数据的char型数组;2、遇到左括号就入栈,即:{[(这三种之一就入栈,3、遇到右括号就把之前的左括号出栈,因为每个右括号会跟其相邻同种类型的左括号配对,就跟if-else语句一样,else总跟最近未匹配的if配对。同时还要注意括号类型是否一样,比如:右花括号}不能跟左方括号[配对,虽然是一右一左,但要跟{才能配对,每次正确配对消耗一个左括号4、最后判断栈是否为空,如果为空,说明全部左括号都配对成功,顺利出栈,栈内没有元素。定义...

2022-05-10 20:46:56 366

原创 栈-----------(数据结构作业)

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据,最后一个数据被第一个读出来。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶,另一端为栈底;栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈,删除则称为退栈。栈也称为后进先出表。压栈void push(.

2022-05-10 19:54:45 283

原创 多项式的加法

创建链表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-05 10:52:51 525 1

原创 静态链表(作业)

静态链表的定义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 18:48:05 54

原创 双向链表(作业)

数据结构C语言双向链表作业

2022-05-02 23:37:11 229

原创 单链表-2.2

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

2022-04-29 14:38:50 823

原创 数据结构——顺序表(4.25作业)

一、顺序表是数据结构的基础,让我们先看一下copy闵帆老师的代码#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]; //

2022-04-25 22:46:08 867

空空如也

空空如也

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

TA关注的人

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