随笔分类 - 考研——数据结构
408考研——数据结构
发表于 2023-09-15 21:24阅读次数:181评论次数:0
摘要:思路: 1、线索化二叉树结点定义与二叉树基本相同,只是在原先的基础上添加了int类型的左右线索标志。 2、定义全局变量pre,用来指向当前结点的前驱结点。 3、构造visit()时,如果访问结点的左孩子为空,需要建立前驱线索并将ltag设为1;如果访问结点的前驱结点不为空且其右孩子为空,需要建立后继
阅读全文 »
发表于 2023-09-09 21:45阅读次数:15评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> //定义 typedef struct BiTNode{ int data; //数据域 struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; //创建新节点 bool creat
阅读全文 »
发表于 2023-09-07 20:27阅读次数:19评论次数:0
摘要:#include <stdio.h> #define MaxSize 100 //定义 typedef struct{ char ch[MaxSize]; int length; }SString; //朴素模式匹配算法 ,主串S,辅串T ,最坏时间复杂度:O(mn) int Index(SStri
阅读全文 »
发表于 2023-09-03 11:40阅读次数:71评论次数:0
摘要:核心思路: 1、首先定义队列结点,包含数据域和指针域;然后定义链式队列,包含队列节点类型的队头和队尾指针。 2、初始化: 带头结点:给头结点分配内存,然后队头和队尾指针指向头结点,同时队头指针的next指向NULL。 不带头结点:队头和队尾指针都指向NULL。 3、入队: 带头结点:先给入队节点分配
阅读全文 »
发表于 2023-09-03 10:01阅读次数:56评论次数:0
摘要:核心思路: 1、使用顺序存储的方式定义队列时,使用数组存储队列元素,然后声明两个int类型的指针——rear和front,分别指向队尾元素的下一个位置和队头元素的位置。 2、初始化队列时,队列的首尾指针都指向0 。 3、当队列为空时,队尾和队头指针指向同一个位置(不一定等于0)。 4、队满条件:(Q
阅读全文 »
发表于 2023-09-02 08:05阅读次数:19评论次数:0
摘要:#include<stdio.h> #define MaxSize 10 //栈的所有操作时间复杂度都是O(1) //定义 typedef struct{ int data[MaxSize]; int top; //栈顶指针,永远指向栈顶元素 }SqStack; //初始化,使栈顶指针指向-1 vo
阅读全文 »
发表于 2023-09-02 07:08阅读次数:111评论次数:4
摘要:单链表(有头结点) #include<stdio.h> #include<stdlib.h> //定义 typedef struct LNode{ int data; //数据域 struct LNode *next; //指针域指向下一个结点,所以是 struct LNode类型 }LNode,*
阅读全文 »
发表于 2023-08-26 07:49阅读次数:293评论次数:0
摘要:静态分配 数组采用静态分配时,数组的大小和空间事先已经固定,一旦空间占满,再新加入数据就会溢出,导致程序崩溃。 //顺序表——静态分配 #include <stdio.h> #define MaxSize 10 //定义顺序表的最大长度 //定义 typedef struct{ int data[M
阅读全文 »
发表于 2022-07-17 17:05阅读次数:39评论次数:0
摘要:/* 先序线索化*/#include<stdio.h> #include<stdlib.h> //建立线索二叉树存储结构 typedef struct ThreadNode{ int data; //数据元素 struct ThreadNode *lchild,*rchild; //左右子树 int
阅读全文 »
发表于 2022-07-13 19:47阅读次数:32评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> #define MaxSize 10 //定义栈 typedef struct{ int data[MaxSize]; //存放栈中元素 int top; //栈顶指针 }SqStack; //初始化栈 void InitSt
阅读全文 »
发表于 2022-07-13 19:46阅读次数:40评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> #define MaxSize 10 //定义队列 typedef struct{ int data[MaxSize]; //存放队列元素 int front,rear; //定义队首指针和队尾指针 }SqQueue; //初
阅读全文 »
发表于 2022-07-13 19:43阅读次数:57评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> typedef struct LinkNode{ //定义队列结点 int data; struct LinkNode *next; }LinkNode; typedef struct{ //定义队列 LinkNode *fr
阅读全文 »
发表于 2022-07-13 19:42阅读次数:20评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> //双链表的定义 typedef struct DNode{ int data; struct DNode *prior,*next; }DNode,*DLinklist; //双链表初始化 bool InitDLinklis
阅读全文 »
发表于 2022-07-13 19:36阅读次数:19评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> //定义单链表 typedef struct LNode{ //定义一个单链表 int data; //数据域 struct LNode *next; //指向下一个元素的指针 }LNode,*LinkList; //初始化单
阅读全文 »
发表于 2022-07-13 19:35阅读次数:26评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> #define MaxSize 10 //定义顺序表 typedef struct{ int number[MaxSize]; int length; //顺序表的当前长度 }SqList; //初始化顺序表 void Ini
阅读全文 »
发表于 2022-07-12 18:46阅读次数:47评论次数:0
摘要:#include<stdio.h> #include<stdlib.h> #define MaxSize 50 //定义栈 typedef struct{ int data[MaxSize]; //存放栈中元素 int top; //栈顶指针 }SqStack; //初始化栈 void InitSt
阅读全文 »