- 博客(13)
- 收藏
- 关注
原创 哈夫曼树和N皇后
文件的创建: 哈夫曼树代码: #include <iostream> #include <fstream> #include <string.h> using namespace std; #define MaxSize 1024 // 读入文件的上限 #define OK 1 #define ERROR 0 typedef int Status; typedef struct wordcnt{ // 统计字符和对应的次数 char.
2022-05-29 18:21:55
218
原创 二叉树的构建和遍历
二叉树的遍历有四种:先序排序,中序排序,后序排序,层次排序。 1、先序排序: 2、 中序排序: 3、后序排序: 4、层次排序: 5、二叉树的代码构建 (1)初始化队列 #include<stdio.h> #include<malloc.h> #define QUEUE_SIZE 5 //创建二叉树结点 typedef struct BTnode { char element;//存储数据。 BTnode*left;//左分支 BTn
2022-05-23 12:21:02
301
原创 矩阵乘法以及压缩矩阵的转置
二位数据可以表示矩阵的乘法,矩阵乘法的计算方法如下: 代码实现如下: 首先进行初始化工作: #include <stdio.h> #include <malloc.h> #include <stdlib.h> #define ROWS 4 #define COLUMNS 5 //定义行数和列数 typedef struct TwoDArray{ int rows; int columns; int** elements; } TwoDArray,
2022-05-19 22:27:46
415
原创 链队列和循环队列
1、初始化链队列 #include<stdio.h> #include<malloc.h> //定义链队列的结点。一个数据域,一个指针域。 typedef struct LinkNode { int data; LinkNode* next; } *LinkNodePtr; //定义链队列,队首和队尾。 typedef struct LinkQueue { LinkNodePtr front; LinkNodePtr rear; } *
2022-05-17 18:18:56
185
原创 累加的递归实现(汉诺塔问题)
累加递归函数 1、添加函数的设计 #include<stdio.h> int addto(int paraN) { int tempSum; printf("ertering addto(%d)\r\n",paraN); if(paraN<=0) { printf("return 0\r\n"); return 0; } else { tempSum = addto(paraN-1) + paraN; printf("return %d\r\n",te
2022-05-12 17:18:22
221
原创 表达式求值
//202031061018 刘知鑫 #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().
2022-05-10 21:24:06
154
原创 栈的基本建立以及应用(括号匹配)
栈是一种运算受限的线性表,是一种特殊的线性表。他只允许在表尾进行插入和删除操作的线性表。其中一段被称为栈顶,另一端称为栈底。向一个栈插入新元素称作入栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素。同理的,从一个栈删除元素又称作出栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的基本建立包括初始化,建立入栈函数,出栈函数和测试函数。 1、初始化 #include <stdio.h> #include <malloc.h> #defi...
2022-05-10 21:13:03
829
原创 数据结构C代码:多项式的加法
1、定义一个结构体,表示系数,次方和指针域。 #include<stdio.h> #include<malloc.h> //定义结构体,三个地址,分别表示系数,次方,指针域。 typedef struct Linknode { int coefficent; int exponent; struct Linknode *next; }*linklist,*nodePtr; 2、初始化 //初始化结构体,全为空。 linklist initlinklist() {
2022-05-05 16:32:48
231
原创 静态链表-----用数组实现的单链表。
静态链表是单链表的另外一种表现方式,具体的操作步骤的实现与单链表类似。 1、初始化 实现代码: include<stdio.h> #include<malloc.h> #define DEFAULT_SIZE 5 //宏观定义内存的大小,在静态连接节点的结构体里在设计一个静态链表的结构体 typedef struct StaticLinkedNode { char data; int next; }*NodePtr; typedef struct Stati.
2022-05-02 17:55:39
945
2
原创 双向链表的插入和删除的实现
双向链表的操作实现包括:初始化指针,打印链表,插入链表以及删除链表。 1、初始化结构体 实现的代码如下: #include <stdio.h> #include <malloc.h> //初始化结构体,一个是前驱指针,一个后继指针. typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next; } DLNo
2022-05-02 12:57:32
7568
1
原创 关于单链表的基本操作
单链表的基本操作包括初始化,连接,插入和删除,我们现在一次来看这几个步骤的实现。 (1)初始化一个结构体,思路: 代码: typedef struct linknode { char data; struct linknode *next; }lnode,*linklist,*nodePtr; (2)创建一个连接链表的函数,将每一个单独的链表串联起来。代码如下: linklist initlinklist() { nodePtr tempheader = (...
2022-04-29 10:41:15
531
原创 线性表的基本操作步骤及其实现
以下是一个对线性表的初始化、取值、查找、插入和删除的实现过程,接下来我们主要讨论这5个主要操作的实现。总体的代码如下: #include<stdio.h> #include<malloc.h> #define LIST_MAX_LENGTH 10 /** * Linear list of integers. The key is data. */ typedef struct SequentialList { int actualLength; i...
2022-04-25 22:35:40
3762
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅