自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言快速解决反转链表

反转链表

2022-04-14 21:53:17 944 1

原创 每日学习心得

每天学习一点网安知识点希望有朝一日成为互联网网安的“钉子户”

2022-03-17 10:01:41 331

原创 线索二叉树

线索二叉树一、存储结构二、线索化先序线索化中序线索化一、存储结构//线索二叉树结点typedef struct ThreadNode{ ElemType data; struct ThreadNode *lchild,*rchild; int ltag,rtag; //左右线索标志}ThreadNode,*ThreadTree;//tag==0,表示指针指向孩子,tag==1,表示指针是“线索”二、线索化先序线索化中序线索化找到中序前驱的方法1:void InOrder(BiT

2021-03-21 14:20:57 87

原创 树的表示方法

树的表示方法双亲表示法孩子表示法孩子兄弟表示法森林和二叉树的转换双亲表示法(顺序存储)//查指定结点的双亲方便,指定结点的孩子则需要从头遍历//根节点固定存储在0,且-1表示没有双亲#define MAX_TREE_SIZE 100typedef struct{ //树的节点定义 ElemType data; int parent; //双亲位置域}PTNode;typedef struct{ //树的类型定义 PTNode nodes[MAX_TREE_SIZE]; //双亲表示

2021-03-21 14:04:24 298

原创 二叉树的基本操作

二叉树的基本操作一、二叉树的存储结构顺序存储链式存储二、二叉树的遍历先序遍历(根左右)中序遍历(左根右)后序遍历(左右根)层次遍历三、二叉树的应用求树的深度注意一、二叉树的存储结构顺序存储#define Maxsize 100struct TreeNode{ ElemType value; //结点中的数据元素 bool isEmpty; //结点是否为空};TreeNode t[Maxsize]; //定义一个数组t,按照从上至下,从左至右的顺序依次存储完全二叉树的结点for(int

2021-03-21 11:05:24 89

原创 队列的基本操作

队列的基本操作一、队列是什么?二、队列的顺序存储结构1.队列的顺序存储2.循环队列(1)入队(2)出队判断队列已满/已空的条件三、队列的链式存储1.队列的链式存储2.链式队列的基本操作一、队列是什么?队列是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。二、队列的顺序存储结构1.队列的顺序存储#define MaxSize 10typedef struct{ ElemType data[MaxSize]; int front; //指向队头元素 int rear;

2021-03-14 14:44:47 205

原创 栈的基本操作

栈的基本操作一、栈是什么二、栈的顺序存储结构1.顺序栈的实现2.顺序栈的基本运算3.共享栈三.栈的链式存储结构链栈定义一、栈是什么栈是只允许在一端进行插入或删除操作的线性表;栈顶是指线性表允许进行插入或删除的一端;栈底是固定的,是不允许进行插入或删除的另一端。二、栈的顺序存储结构1.顺序栈的实现#define MaxSize 10 //定义栈中元素的最大个数;typedef struct{ ElemType data[MaxSize]; int top; //定义栈顶指针}SqSta

2021-03-14 12:31:45 129

原创 循环链表(循环单链表和双链表)

循环链表前言一、循环单链表的初始化二、判断是否为空或表尾结点三、循环双链表的初始化四、循环双链表的插入与删除前言对于循环单链表而言,在进行插入和删除时,可以让指针指向尾部,对于表头(通过尾部找到头部)和表尾的操作的时间复杂度均为O(1);一、循环单链表的初始化//带头结点的循环单链表typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*Linklist;bool Initlist(Linklist &L)

2021-02-04 15:51:00 3604

原创 双链表及其基本操作

双链表及其基本操作前言一、初始化(带头结点)二、插入三、删除和销毁四、遍历总结前言单链表无法逆向检索,而双链表可进可退,相比较而言存储密度更低一些一、初始化(带头结点)typedef struct DNode{ ElemType data; struct DNode *prior,*next;}DNode,*DLinklist;bool InitDLinklist(DLinklist &L){ L=(DNode *)malloc(sizeof(DNode)); if(L==N

2021-02-04 15:06:53 220

原创 单链表的建立(尾插法和头插法)

单链表的建立一、尾插法二、头插法总结一、尾插法Linklist List_TailInsert(Linklist &L){ //正向建立单链表 int x; //设Elemtype为整型 L=(Linklist)(malloc(sizeof(LNode)); //建立头结点,初始化空表 LNode *s,*r=L; //r为尾指针 scanf("%d",&x); //输入结点的值 while(x!=9999){ //当输入到9999结束 s=(LNode *)(mallo

2021-02-02 14:40:27 511

原创 单链表的查找

单链表的查找一、按位查找,返回第i个元素(带头结点)二、按值查找三、求表的长度一、按位查找,返回第i个元素(带头结点)LNode * GetElem(Linklist L,int i){ if(i<0) return NULL; LNode *p; int j=0; p=L; while(p!=NULL&&j<i){ //循环找到第i个结点 p=p->next; j++; } return p;}二、按值查找LNode * Locate

2021-02-02 13:42:17 1344 1

原创 单链表的基本操作

单链表的基本操作前言一、插入二、删除1.按位序删除,带头结点2.指定结点p的删除总结前言一、插入ListInsert(&L,i,e) 找到第i-1结点,并将新结点插入其后按位序插入,带头结点typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*Linklist;//在第i个位置插入元素e(带头结点)bool ListInsert(Linklist &L,int i,ElemType e){

2021-02-01 14:34:06 175

原创 单链表的定义

单链表的定义前言一、为什么使用typedef二、单链表的定义1.不带头结点2.带头结点总结前言用链式存储实现了线性结构,一个结点存储一个数据元素,各个结点的先后关系用一个指针表示一、为什么使用typedef没有使用typedef时struct LNode{ //定义单链表结点类型 ElemType data; //数据域,每个节点存放一个一个数据元素 struct LNode *next; };struct LNode* p=(struct LNode *)malloc(sizeof(

2021-02-01 12:09:01 1496

原创 顺序表的基本操作(删除,插入和查找)

顺序表的基本操作前言一、插入时间复杂度二、删除时间复杂度三、查找时间复杂度总结前言顺序表的基本操作主要有删除,插入和查找一、插入#define MaxSize 10typedef struct{ int data[MaxSize]; int length;}Sqlist;void Initlist(Sqlist &L){ for(int i=0;i<MaxSize;i++){ L.data[i]=0; //将所有数据元素设置为默认初始值 L.length=0;

2021-01-31 22:08:23 2429 2

原创 数据结构之线性表的基本操作

线性表的基本操作前言一、未使用“&”二、使用“&”三、使用指针总结前言什么时候传入参数引用“&”即对参数的修改结果需要带回来的时候一、未使用“&”//cpp#include<stdio.h>void test(int x){ x=1024; printf("函数内部x=%d\n",x);}int main(){ int x=1; printf("调用test前x=%d\n",x); test(x); printf("调用test后

2021-01-30 20:58:38 253

原创 顺序表的实现方式之静态分配和动态分配

顺序表的实现方式前言一、静态分配二、动态分配1.动态分配所需函数2.动态分配部分代码总结前言顺序表的实现方式分为两种,即静态分配和动态分配,其具有逻辑上相邻的数据元素物理上也相邻的特点一、静态分配1. 定义并且初始化顺序表注:(1)在内存中分配存储顺序表L的空间。包括MaxSize*sizeof(ElemType)和存储length的空间(2)把各个数据元素的值设为默认值(可省略)(3)将length长度设为0#include <stdio.h>#define Ma

2021-01-30 20:36:15 4089 4

原创 Java中的几种注释

Java中的几种注释单行注释多行注释文档注释(JAVA专有)单行注释格式//JAVA注释多行注释格式/**JAVA注释多行注释不可嵌套*/文档注释/**JAVA注释/作用:对所有的程序进行解释说明,增强可读性调试程序特点:单行注释和多行注释,注释的内容不参与编译文档注释中注释的内容可被JDK工具中的javadoc所解析,生成一套以网页文件形式体现该程序的说明文档。注:Javadoc如何解析文档注释呢?在dos界面中 javadoc -d 文件夹名 -auth

2020-11-21 09:25:40 417

原创 JAVA中需要知道的常用命令行指令

JAVA中需要知道的常用命令行指令电脑搜索栏输入CMD,出现命令提示符界面1.改指定磁盘(例如改成D盘 输入D:)2.查看目录 dir3. 创建文件夹md4. 进入文件夹 cd(cd还可退出文件夹)5. 删除文件夹 rd6. 创建特定格式文本 echo 文本内容>文本名7. 删除文件del...

2020-11-02 18:26:24 317

空空如也

空空如也

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

TA关注的人

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