数据结构
落子摘星
吾尝终日而思矣,不如须臾之所学也。
展开
-
大话数据结构笔记——二叉树(基础)
一、二叉树的定义 二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。 1.二叉树的特点 ①每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。 ②左子树和右子树是有顺序的,次序不能任意颠倒。 ③即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。 二叉树具有五种基本形态:空二叉树、只有一个...原创 2020-04-20 18:05:58 · 369 阅读 · 0 评论 -
C语言单链表的逆转
单链表的逆转是一个基础的数据结构题,做起来不难。和解决这个问题一起写的还有做题的规矩,不能因一个问题简单就直接开始写代码,对于初学者来说,写代码前先写一个程序的大致框架是很有用的。 解题思路: 创建一个单链表,遍历这个链表并且以头插...原创 2020-04-01 18:27:07 · 1410 阅读 · 0 评论 -
KMP模式匹配算法笔记
一直打算写KMP算法的笔记,但是对这个算法的推导过程着实有点恐惧,但是又不能停到这里不往下去学,我也不想跳过,所以决定硬着头皮认真写下去,总有一天会写完的。 KMP算法的作用用是尽可能简单的方法比较两个字符串,普通的字符串匹配算法有很多步都是多余的。 先看一下普通的字符串匹配算法: //返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数返回0 //T非空,1≤pos≤StrLength...原创 2020-03-06 15:41:18 · 234 阅读 · 0 评论 -
大话数据结构笔记:循环队列及队列的链式存储
一、循环队列 1.循环队列的顺序存储结构代码: #define MAXSIZE 20 typedef struct { int data[MAXSIZE]; int front; //头指针 int rear; //尾指针,若队列不为空,指向队列尾元素的下一个位置 }SqQueue; &nb...原创 2020-02-16 13:41:31 · 1350 阅读 · 0 评论 -
大话数据结构笔记:栈的顺序存储结构和链式存储结构
一、栈的顺序存储结构 栈的结构定义: #define MAXSIZE 20 //20后不能加分号 typedef struct { int data[MAXSIZE]; int top; //栈顶指针 }SqStack; &n...原创 2020-02-15 16:50:19 · 386 阅读 · 0 评论 -
大话数据结构笔记:线性表的链式存储
链表中第一个结点的存储位置叫做头指针。 单链表的第一个结点前附设一个结点,称为头结点。 一、头结点与头指针的异同 ①头指针:头指针是指链表指向第一个...原创 2020-01-27 10:38:54 · 488 阅读 · 0 评论 -
大话数据结构笔记:线性表的顺序存储结构
线性表的顺序存储的结构代码: #define MAXSIZE 20 typedef int ElemType; //ElemType类型根据实际情况而定 typedef struct { ElemType data[MAXSIZE]; //数组存储数据元素 int length; ...原创 2020-01-26 17:37:56 · 226 阅读 · 0 评论