- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 Java-反转链表
给定一个单链表的头结点 pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
2022-07-17 12:47:43
333
原创 数据结构--4.3 N后问题
N后问题代码实现运行结果n后问题就是有一个n*n的棋盘,在这个棋盘中放n个皇后,使得这n个皇后,任意两个皇后不在同一行,同一列,同一条对角线。代码实现这里采用的是暴力递归法:#include <stdio.h>#include <malloc.h>#include <math.h> bool place(int* paraSolution,int paraT) { int j; for(j = 1;j < paraT;j ++) {
2022-05-29 19:54:36
164
原创 数据结构--4.1 二叉树的创建与遍历
二叉树的创建与遍历二叉树的创建结构体定义初始化创建子树字符串转化为二叉树``二叉树的遍历层次遍历前中后序遍历测试代码运行结果总结二叉树的创建结构体定义#include <stdio.h>#include <malloc.h>#define QUEUE_SIZE 5typedef struct BTNode{ char element; BTNode* left;//左儿子 BTNode* right;//右儿子 }BTNode,*BTNODE;typed
2022-05-24 21:21:18
2218
原创 数据结构--3.3 矩阵转置
矩阵转置结构体创建初始化转置打印测试代码运行结果1.稀疏矩阵的压缩存储,至少需要存储以下信息:矩阵中各非 0 元素的值,以及所在矩阵中的行标和列标;矩阵的总行数和总列数;上图是一个稀疏矩阵,若对其进行压缩存储,矩阵中各非 0 元素的存储状态如图 2 所示:图 2 的数组中,存储的是三元组(即由 3 部分数据组成的集合),组中数据分别表示(行标,列标,元素值)。2、矩阵(包括稀疏矩阵)的转置,即互换矩阵中所有元素的行标和列标图 2a) 表示的是图 1 中转置之前矩阵的三元组表,2b) 表
2022-05-23 16:36:42
11091
4
原创 数据结构--2.4 队列
队列链式队列结构体定义创建入队出队运行结果循环队列结构体定义创建判断空和满入队出队运行结果总结今天敲得是队列,有两个不同的实现方式:链式队列和循环队列。队列只允许在一端插入数据操作,称为队尾,在另一端进行删除数据操作,称为队首。队列具有先进先出的特性。链式队列结构体定义#include <stdio.h>#include <malloc.h>typedef struct Node{ int data; struct Node *next;}NODE,*PNODE
2022-05-16 11:50:09
358
1
原创 一般线性表的应用
一般线性表的应用习题顺序表求交集代码及说明总结:&的作用顺序表求交集两个线性表La和Lb均采用顺序存储结构,数据元素均为正整数,两个线性表中各有若干个整数,编写程序求出两个线性表的交集。结构体定义:typedef struct{ ElemType *elem; //存储空间基址,体现动态性 int length; //当前表的长度 int listsize; //当前分配的存储容量}SqList;主程序
2022-05-13 14:49:50
1252
原创 数据结构--2.3 栈与递归
栈与递归累加汉诺塔问题算法说明代码实现时间复杂度与空间复杂度总结累加累加可以用for循环,也可以用递归。代码如下:#include <stdio.h>#include <malloc.h>int addTo(int n){ if(n<=0) { return 0; }else { int num; num=addTo(n-1)+n; return num; }}int main(){ int num; num=addTo(5)
2022-05-11 22:03:16
363
3
原创 数据结构2.2栈的应用--表达式求值
表达式求值算法说明代码实现运行结果算法说明在课上听了上一级学长的代码,觉得受益匪浅。奈何学艺不精,只能在理解代码之后用自己会的c语言来尝试实现。在上课听的时候,我就在想表达式求值的逻辑究竟是怎样的。首先,我们需要两个栈,一个用于存放数字,一个用于存放运算符。有一个难点是运算符是有优先级顺序的,究竟应该怎么去实现这个优先级,这里借鉴了别人的算法:二维数组。并且()’优先级最高,‘(’和‘)’优先级相同,故若优先级相同,则说明是括号。如果栈顶运算符和扫描到的运算符相同,则栈顶运算符优先级高。例如:栈顶运算
2022-05-10 21:32:23
548
原创 数据结构--2.1 栈
数据结构--栈老师版创建压栈自己版今天敲得是栈。栈是一种特殊的存储方式,这种方式就像往箱子里面放东西,先放进去的后拿出来,后放进去的先拿出来。老师是用数组的形式实现,我用链表的形式实现。来看代码吧。老师版创建#include <stdio.h>#include <malloc.h>#define STACK_MAX_SIZE 10typedef struct CharStack{ int top; int data[STACK_MAX_SIZE];}*Char
2022-05-10 15:31:23
258
原创 数据结构应用--多项式相加
多项式相加老师版心得体会自己敲版运行结果两版代码的局限性老师版#include <stdio.h>#include <malloc.h>typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;}*LinkList,*NodePtr;//创建LinkList initLinkList(){ LinkList tempHeader=(LinkList)mallo
2022-05-06 09:27:09
1028
2
原创 数据结构--1.4静态链表
数据结构--静态链表代码实现结构体定义创建输出插入删除测试代码代码实现今天敲得是静态链表。静态链表区别于单链表的一大特点是,静态链表有部分的空间是由我们自己进行安排,所以这部分的代码自我感觉理解起来可能会更困难,所以会多一些文字说明,尽可能把其中的内存分配原理说清楚。结构体定义在这里我们定义了两个结构体,他们的用处在创建中会写到。#include <stdio.h>#include <malloc.h>#define DEFAULT_SIZE 5typedef s
2022-05-03 19:51:03
1511
2
原创 数据结构--1.3双向链表
数据结构-双向链表今天学习的是双向链表,比起单链表来说应用会更加广泛,和单链表的算法在少数地方有些许差异。老师的代码创建一个双向链表双向链表在结构体的定义上多增加了一个指向前一个的指针域。typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;}DLNode,*DLNodePtr;//创建 DLNodePtr initLin
2022-05-03 13:02:39
566
1
原创 数据结构--1.2单链表
单链表的基本算法老师版本创建单链表输出单链表追加元素插入元素删除元素测试代码运行结果自己的代码老师版本创建单链表LinkList initLinkList(){ NodePtr tempHeader = (NodePtr)malloc(sizeof(LNode)); tempHeader->data = '\0'; tempHeader->next = NULL; return tempHeader;}输出单链表void printList(NodePtr paraHead
2022-04-29 15:03:48
566
原创 数据结构——1.1顺序表
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-04-25 21:28:30
1127
空空如也
按升序输出素数,代码为什么错了
2021-11-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人