自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构——哈夫曼树与n皇后问题

当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。(1)构建结点bool place(int* paraSolution, int paraT){ int j; for (j = 1; j < paraT; j ++){ if ((abs(paraT - j) == abs(paraSolution[j] - paraSolution[paraT]))

2022-05-29 19:04:05 144

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

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

2022-05-24 19:16:04 156

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

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑地集中到了一起,所以有时候可以简便

2022-05-21 12:55:05 401

原创 数据结构——链队列与循环队列

一.链队列1.定义//链队列节点typedef struct LinkNode{ int data; struct LinkNode* next;}*LinkNodePtr; //链队列 typedef struct LinkQueue{ LinkNodePtr front; LinkNodePtr rear; } *LinkQueuePtr;2.初始化//初始化LinkQueuePtr initQueue() { LinkQueuePtr resultP

2022-05-17 18:44:21 124

原创 累加问题和汉诺塔问题

1.汉诺塔问题大一上就学过汉诺塔了,稍加理解之后还是不怎么难的void move(char pos1, char pos2) { printf("%c--->%c\n", pos1, pos2);}void hanoi(int n, char pos1, char pos2, char pos3) { //pos1:起始,pos2:中转,pos3:目的// if (n == 1) { move(pos1, pos3); } else { hanoi(n - 1, pos

2022-05-12 19:46:08 104

原创 数据结构——栈的应用

一.括号匹配的检验遇到左括号就进栈,遇到右括号就跟当前栈顶匹配,能匹配就将其出栈,否则不匹配#include <stdio.h>#include <malloc.h>#define STACK_MAX_SIZE 10//创建栈结构体typedef struct charStack { int top; int data[STACK_MAX_SIZE];} *stackPtr;//输出栈void outputStack(stackPtr p.

2022-05-10 19:25:42 155

原创 数据结构——栈

栈的定义栈(stack)是限定仅在表尾进行插入或者删除的线性表。对于栈来说,表尾端称为栈顶(top),表头端称为栈低(bottom)。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除,所以栈又被称为后进先出的线性表直接上代码#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef int SElemType;//顺序栈的存储结构typedef struct{ SElemType.

2022-05-10 18:48:12 807

原创 数据结构——多项式加法

1.创建链表typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} *LinkList, *NodePtr;2.初始化LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0; tempHead

2022-05-06 11:55:35 71

原创 数据结构——静态链表

静态链表:线性存储结构的一种,兼顾顺序表和链表的优点,是顺序表和链表的升级;静态链表的数据全部存储在数组中(顺序表),但存储的位置是随机的,数据直接的一对一关系是通过一个整型变量(称为“游标”,类似指针的功能)维持。它的存储空间是连续的。数据元素的个数从它创建的那一刻起就已经定死了。老师代码:#include <stdio.h>#include <malloc.h>#define DEFAULT_SIZE 5typedef struct StaticLinkedN

2022-05-03 15:38:31 715

原创 数据结构——双向链表

1.双链表的定义双向链表基于单链表。单链表是单向的,有一个头结点,一个尾结点,要访问任何结点,都必须知道头结点,不能逆着进行。而双链表添加了一个指针域,通过两个指针域,分别指向结点的前结点和后结点。这样的话,可以通过双链表的任何结点,访问到它的前结点和后结点。在双向链表中,结点除含有数据域外,还有两个链域,一个存储直接后继结点的地址,一般称为右链域;一个存储直接前驱结点地址,一般称之为左链域。双向链表结构示意图:/*随机数的范围*/#define MAX 10e/*节点结构*/typ

2022-05-03 15:26:08 5889 1

原创 数据结构——单链表

先上老师の代码#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. * @r

2022-04-29 14:29:16 615

原创 数据结构——线性表

第一次发这玩意,不知道该写点什么就随便写写吧先是老师的标准代码#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-26 13:58:13 1415

空空如也

空空如也

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

TA关注的人

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