自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 邻接表及广度优先遍历

邻接表

2022-06-01 10:59:52 186

原创 图及其遍历

图的定义:图(Graph)G由两个集合V和E组成,记为G=(V,E),其中V是顶点的有穷非空集合,E是V中顶点偶对的有穷集合,这些顶点偶对称为边。V(G)和E(G)通常分别表示图G的顶点集合和边集合,E(G)可以为空集。若E(G)为空,则图G只有顶点而没有边。

2022-06-01 10:42:47 371

原创 哈夫曼树及编码

文章目录一、哈夫曼树的概念二、相关功能实现三、完整代码四、运行结果一、哈夫曼树的概念1、哈夫曼树:假设有m个权值,可以构造一棵含n个叶子结点的二叉树,若该树的带权路径长度达到最小,则称这样的二叉树为哈夫曼树。2、结点的带权路径长度:根节点到任意结点的路径长度与该节点的权值的乘积3、路径长度:路径上的分支数目4、树的带权路径长度:树中所有叶子结点的带权路径长度之和离根结点越远,权值越小二、相关功能实现1、结构体的定义typedef struct wordcnt{ // 统计字符和对应的

2022-05-28 18:29:42 1413

原创 n皇后问题

1、n皇后问题:指在n*n的棋盘上摆放n个皇后,使得任意两个皇后不在同一行、同一列或同一斜线上,求解满足这种摆放方式的解有多少种。2、代码实现:#include<iostream>#include<math.h>using namespace std;#define max 100int x[max];int n;//皇后数量 int sum = 0;//计算结解的个数//判断即将放置的位置(row,col)是否满足 bool place(int row,in

2022-05-28 16:39:23 112

原创 二叉树的创建及遍历

文章目录一、二叉树的创建及遍历二、全部代码代码如下(示例)运行结果一、二叉树的创建及遍历(1)初始化队列QueuePtr initQueue(){ QueuePtr resultQueuePtr = (QueuePtr)malloc(sizeof(struct BTNodePtrQueue)); resultQueuePtr->nodePtrs = (BTNodePtr*)malloc(QUEUE_SIZE * sizeof(BTNodePtr)); resultQueuePtr->

2022-05-24 17:10:24 194

原创 压缩矩阵的转置

压缩转置操作图例:1、头文件#include <stdio.h>#include <malloc.h>typedef int elem;2、创建//原矩阵的行、列、数据typedef struct Triple{ int i; int j; elem e;}Triple,*TriplePtr;typedef struct CompressedMatrix{ int rows,columns,numElements; T

2022-05-19 17:43:45 130

原创 二维数组与矩阵乘法

二维数组:

2022-05-19 16:12:59 478

原创 链队列和循环队列(c语言数据结构)

一、链队列:链队是指采用链式存储结果实现的队列,通常用单链表来表示。一个链队需要两个分别指示队头和队尾的指针才能确定。代码:#include <stdio.h>#include <malloc.h>//链队列的节点 typedef struct LinkNode{ int data; LinkNode* next;}*LinkNodePtr;//链队列.typedef struct LinkQueue{ LinkNodePtr front; LinkN

2022-05-17 16:59:47 418

原创 累加的递归实现及汉诺塔问题

1、累加的递归实现代码:#include<stdio.h>int Add(int n){ int sum; if(n <= 0) { printf("return 0\n"); return 0; } else { sum = Add(n-1)+n; printf("return %d\n",sum); return sum; }}void AddTest(){ int n, sum; printf("---- AddTest beg

2022-05-11 21:30:36 198

原创 栈表达式求值(c语言数据结构)

1、头文件#include <iostream>#include <stdio.h>2、定义常量#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100#define OVERFLOW -23、个性化设置using namespace std;typedef char SElemType;typedef int NElemType;typedef int St

2022-05-10 18:30:19 3303 6

原创 栈及括号匹配问题(c语言数据结构)

1、栈的定义栈是一种线性存储结构,它具有如下特点:(1)栈中的数据元素遵守”先进后出”或“后进先出”的原则。(2)限定只能在栈顶进行插入和删除操作。(3)表尾端为栈顶,另一端为栈底。2、栈主要有以下几种基本操作:(1)Push(): 向栈内压入一个元素;(2)Pop(): 从栈顶弹出一个元素;(3)Empty(): 如果栈为空返回true,否则返回false;(4)GetTop(): 返回栈顶,但不删除元素;(4)size(): 返回栈内元素的大小;老师代码:#include &

2022-05-09 22:26:55 1102

原创 多项式相加(c语言数据结构)

1、老师的代码如下:#include <stdio.h>#include <malloc.h>/** * Linked list of integers. The key is data. The key is sorted in non-descending order. */typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} *LinkList, *N

2022-05-05 12:11:54 1163

原创 静态链表(c语言数据结构)

静态链表定:逻辑结构上相邻的数据元素,存储在指定的一块内存空间中,数据元素只允许在这块内存空间中随机存放,这样的存储结构生成的链表称为静态链表。也就是说静态链表是用数组来实现链式存储结构,目的是方便在不设指针类型的高级程序设计语言中使用链式结构。它的优点是和动态链表一样,删除和插入元素时间复杂度低;不足是和数组一样,需要提前分配一块较大的空间。老师代码如下:#include <stdio.h>#include <malloc.h>#define DEFAULT_SIZE

2022-05-03 15:51:26 688 1

原创 双链表(c语言数据结构)

老师代码如下:#include <stdio.h>#include <malloc.h>/** * Double linked list of integers. The key is char. */typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;} DLNode, *DLNodePtr;

2022-05-02 21:41:56 829 1

原创 单链表(c语言数据结构)

老师的代码如下:#include<stdio.h>#include<malloc.h>/**Linked list of characters. The key is data.*/typedef struct LinkNode{ char data; struct LinkNode *next;}LNode, *LinkList, *NodePtr;/*** Initialize the list with a header.*@return The p

2022-04-28 14:19:29 3522

原创 顺序表(c语言数据结构)

顺序表

2022-04-25 19:48:44 1042

空空如也

空空如也

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

TA关注的人

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