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

原创 数据结构图的遍历和邻接表的广度遍历

目录图一.邻接矩阵1.邻接矩阵的定义2.初始化邻接矩阵3.深度遍历4.广度遍历5.总源代码6.测试结果二.邻接表1.创建邻接表2.初始化邻接表3.广度遍历4.源代码5.测试代码总结因为图的结构比较复杂,我将会用邻接矩阵和邻接表两种数据结构来表示图。存储方式是用两个数组来表示图。一个一维数组来储存图中顶点信息,一个二维数组来储存图中的边信息。 2.初始化邻接矩阵3.深度遍历4.广度遍历5.总源代码6.测试结果二.邻接表邻接表有一个数组和指针组成,数组

2022-06-01 00:04:29 410

原创 数据结构哈夫曼树&N皇后问题

一.哈夫曼树哈夫曼树:给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的大权路径长度达到最小,则该二叉树为哈夫曼树,也被称为最优二叉树。哈夫曼树的构造过程:初始状态有n棵只有根节点的树,找出其中权值最小的两棵树,生成他们的父节点,父节点的权值为他们权值之和。重复操作,直到只有一颗树为止。编码:编码从最小的子树开始,可以使用栈这种数据结构储存他们的位置编码。第二种可以使用数组,从数组的最后向前开始存储位置编码。#include <stdio.h>#in.

2022-05-28 23:39:06 194

原创 数据结构二叉树

目录二叉树一.二叉树的遍历1.先序遍历2.中序遍历3.后序遍历4.层次遍历5.源代码6.测试代码二.总结二叉树一.二叉树的遍历1.先序遍历void preorder(BTNodePtr tempPtr){ if(tempPtr==NULL){ return; } printf("%c",tempPtr->element); preorder(tempPtr->left); preorder(tempPtr->.

2022-05-23 22:56:40 135

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

一·浅谈转置矩阵转置矩阵一般有两种方式,一种是直接交换行和列的次序,这种算法的时间复杂度为O(n^2).有没有一种方法能够降低时间复杂度呢?有,也就是下面要说的快速转置矩阵。快速转置矩阵的核心是要定义两个数组。第一个数组用来储存压缩矩阵中每列的有效值的个数,第二个数组用来储存每列第一个有效值的次序。不多说直接上代码。#include <stdio.h>#include <malloc.h>typedef int elem;typedef struct Tr

2022-05-20 16:04:05 1349

原创 数据结构二维数组及矩阵相乘

一.源代码二级指针在初始化时应注意,空间应分两次分配,先分配指向指针的指针空间,再分配一级指针的空间。#include <stdio.h>#include <malloc.h> #include <stdlib.h>#define ROWS 4#define COLUMNS 5typedef struct DArray{ int row; int column; int **element;}TwoDArray, *TwoDArrayPtr

2022-05-20 15:30:47 339

原创 数据结构链队和循环队列

目录一.代码展示1.链队列2.循环队列二.总结一.代码展示1.链队列#include <stdio.h>#include <malloc.h>typedef struct LinkNode{ int data; LinkNode *next; }*NodePtr;typedef struct LinkQueue{ NodePtr front; NodePtr near;}*QueuePtr;//初始化 ..

2022-05-16 17:41:01 88

原创 数据结构递归算法

一.聊聊递归。递归算法就是将原问题不断的分解为规模更小的子问题,子问题的解题思路和原问题保持一致。当问题不断缩小规模直到一个临界点,也就是递归出口,递归出口应该存在一种简单情境,我们应该直接给出解决方案,从该点取得值再原路返回。二.代码展示1.使用递归算法解决累加int addTo(int n){ if(n<=0){ return 0; } else{ return addTo(n-1)+n; }} 测试代码---- addToTest begins. -

2022-05-12 10:57:16 884

原创 数据结构栈的运用(计算表达式)

一.代码不多说,直接上代码。#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 100typedef int Status;typedef char SElemType;typedef struct{ SElemTy

2022-05-10 20:55:29 128

原创 数据结构学习栈的应用(括号匹配)

一.代码展示这次代码是基于栈的基础代码上来写的。括号匹配是栈的应用之一,就像开心消消乐一样还是比较有趣的。1.括号匹配函数bool bracketMatch(char *paraString, char paraLength){ //初始化创建栈底 stackPtr tempStack= initStack(); push(tempStack, '#'); char tempChar,tempPopedChar; //start for(int i=0;i<pa

2022-05-09 18:46:07 556

原创 数据结构栈学习

一.代码展示1.创建栈结构体//创建栈结构体 typedef struct charStack{ int top; int data[STACK_MAX_SIZE];}*stackPtr; 2.初始化栈//初始化栈stackPtr initStack(){ stackPtr tempStack=(stackPtr)malloc(sizeof(stackPtr)); tempStack->top=-1; return tempStack;} 3.输出栈

2022-05-09 18:16:27 314

原创 数据结构多项式求和

一.代码展示1.创建结构体//创建结构体 typedef struct LinkNode{ int coefficient; int index; struct LinkNode *next;}*NodePtr,*LinkList;2.初始化链表//初始化链表 LinkList initLinkList(){ NodePtr tempHeader=(NodePtr)malloc(sizeof(NodePtr)); tempHeader->coefficient=0;

2022-05-05 17:17:16 3943 2

原创 数据结构静态链表学习

目录一.静态链表二.具体代码展示1.静态链表的定义2.初始化静态链表3.向指定位置插入结点4.删除指定元素5.打印链表长度6.完整代码7.测试代码三.总结四.附上老师的代码一.静态链表静态链表同时具有顺序表和链表的一些特征,比如和数组相同的需要在初始化时申请一定大小的空间,用游标替代链表中的指针。二.具体代码展示1.静态链表的定义typedef struct staticLinkedNode{ char data; int next;

2022-05-03 13:08:56 241

原创 数据结构双向链表学习

目录一.双链表二.代码展示1.双向链表的定义2.双向链表的初始化3.双向链表在指定位置插入新元素4.双向链表删除指定元素5.找到指定元素的位置6.打印链表长度7.双向链表的整表删除8.返回指定结点的地址9.完整代码10.样例测试输出三.总结一.双链表双链表对比于单链表添加了一个前驱指针域,优势是可以实现双向遍历,而单链表只能从头结点开始遍历。学生作业,大佬路过有误请指正。二.代码展示1.双向链表的定义/** * Do

2022-05-02 18:06:54 1266 1

原创 数据结构单链表学习

目录1.链表结构体的创建2.初始化链表3.插入结点尾插法头插法4.指定位置插入5.指定元素后插入(遍历到的第一个指定元素后插入)6.删除指定元素结点7.(链表的长度不明)找到倒数第k位的结点8.打印链表9.摧毁链表10.完整代码11.部分代码测试二、总结1.链表结构体的创建/** * Linked list of characters. The key is data. */typedef struct LinkNode{ .

2022-04-29 11:30:35 903

空空如也

空空如也

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

TA关注的人

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