05 2020 档案
摘要:能够运行的线索二叉树代码,保证看得懂,后期会专门出一篇文章讲线索二叉树是如何遍历的 这里注意:pre定义为全局变量 Node *pre=NULL; void inthread(Node *p) { if(p!=NULL) { inthread(p->left); if(p->left==NULL)
阅读全文
摘要:线索二叉树又可以称为穿线二叉树,创建其目的在于能使遍历更加方便 线索二叉树王相对于普通二叉树:增加额ltag和rtag这两个变量 初始的两值都是置为0的 在创建线索二叉树中,只要是左右任意节点为空,则将对应的ltag(LeftChild's tag)或rtag(RightChild's tag)置为
阅读全文
摘要:以下包含有前后序的递归和非递归算法 具体递归方法可以在bilibili观看我的讲解 一步一步的推演递归是如何遍历完整个二叉树的 https://www.bilibili.com/video/BV1fZ4y1p7M9 #include<stdio.h> #include<stdlib.h> #defi
阅读全文
摘要:思考题: 如何用递归求出数组中的最大项 解: 我们很简单的把一个拥有n个数字的int类型的数组看成两个部分, 前n-1项和第n项 在进行比较大小的时候,就直接拿前n-1项和第n项进行比较: 如果第n项比较大,就return出第n项 如果前n-1项比第n项要大,就用递归的方法return出前n-1项的
阅读全文
摘要:用两个栈来模拟出队顺序 栈的出队顺序为FILO 队的出队顺序为FIFO 那么用两个栈来实现队的FIFO顺序如何实现呢? 看代码以及伪代码讲解 #include<stdio.h> #include<stdlib.h> #include<stdbool.h> #define MAXSIZE 5 type
阅读全文
摘要:在编写下列代码的前提是所有插入的元素均为正整数,求每个数字都是不相同的 今天学习的是二叉树的创建 在创建过程中发现中序遍历能够讲原先无序的数组转换成有序数组输出 具体讲解将在这几天写完 考虑到二叉树的具体一些操作会用到递归算法 后期也会考虑加上递归操作的方法 #include<stdio.h> #i
阅读全文
摘要:在日常编程过程中深感数据结构不扎实所带来的不便 所以决定再学习数据结构和数据库技术 博客将着重记录这个再学习过程中的 部分经典算法题和学习心路历程 偶尔也会更新python
阅读全文
摘要:首先是中缀表达式转后缀表达式 以下代码都调用了prior()这个函数,所以我在这里只写了一个prior函数 在粘贴的时候要注意,不要忘记prior这个函数 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//以下都调用了prior函数
阅读全文
摘要:已知一个采用顺序储存结构进行存储的线性表a,其中的元素都是互不相等的整数 设计一个算法,将线性表重新排列称为一个节点为界的两部分 前一部分元素都小于他,后一部分都大于他 /* 现在有一个数组 要求以第一个数为界限 把数组中大于该数的项放到右边 小于的放到左边 */ #include<stdio.h>
阅读全文
摘要:具体的数学实现方法就不写了,网上有大把大把的 这里写两种最容易理解的版本 第一种是最简单的链表实现方法 #include<stdio.h> #include<stdlib.h> /* 第一种是链表法 首先创建一个循环单链表 将每一个参加该游戏的人设定为一个节点 每个节点的data域代表了每个人的编号
阅读全文
摘要:这种kmp算法很简单代码也没有网上的那么复杂,简单易懂 void CreatPreFix(char pattern[],int prefix[],int n) { int i=0,j=1; prefix[0]=0; while(j<n) { if(pattern[i]==pattern[j]) pr
阅读全文