摘要: 如下代码: while循环嵌套for循环,在for循环内达到了while循环的结束条件,while循环并没有结束,而是一直到for循环执行完了才结束 int n = 4; while(n>0){ for(int i=1;i<=7;i++){ n--; } } 阅读全文
posted @ 2021-03-05 00:45 封不烦 阅读(31) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/qq_45738810/article/details/107842532 阅读全文
posted @ 2021-01-21 11:45 封不烦 阅读(1322) 评论(0) 推荐(0) 编辑
摘要: void cc(TNode *t,int &n){ //计算节点数量 if(t!=NULL){ n++; cc(t->lchild,n); cc(t->rchild,n); } } void leaf(TNode *t,int &n){ //叶子计算 if(t!=NULL){ if(t->lchil 阅读全文
posted @ 2020-11-25 19:29 封不烦 阅读(783) 评论(0) 推荐(0) 编辑
摘要: void Copy(TNode *T,TNode *&NewT){ //参数旧树t,新书NewT if(T == NULL){ //旧树空直接空 NewT = NULL; return ; } NewT = (TNode*)malloc(sizeof(TNode)); //创建节点 NewT->da 阅读全文
posted @ 2020-11-24 20:53 封不烦 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 思路:采用递归的方法。用两个值分别计算二叉树的左右子树的深度,左右子树中最深的的深度就是树的深度 int deep(TNode *t){ //参数:树t if(t == NULL) return 0; //若第一个节点就是空的,说明这是空树 int n = deep(t->lchild); //层层 阅读全文
posted @ 2020-11-24 20:36 封不烦 阅读(1183) 评论(0) 推荐(0) 编辑
摘要: 1 //问题:若二叉树左孩子的值大于右孩子的值则交换左右孩子 2 //思路:可以用遍历的思想解决问题。采用后序遍历方法,目的是从下到上,从子到双亲进行交换 3 #include "stdio.h" 4 #include "stdlib.h" 5 typedef struct TNode{ //树节点 阅读全文
posted @ 2020-11-23 20:46 封不烦 阅读(724) 评论(0) 推荐(0) 编辑
摘要: #include "stdio.h" #include "stdlib.h" typedef struct TNode{ //树节点 char data; TNode *lchild,*rchild; }TNode; typedef struct LNode{ //栈节点 char data; LN 阅读全文
posted @ 2020-11-23 19:45 封不烦 阅读(477) 评论(0) 推荐(0) 编辑
摘要: //问题:将非负十进制整数转换为二进制数 //思想:除二取余,逆序输出 //每次%2,所得值入栈,除二再取余。 //注:因为C int型没有小数。故得数会向下取整。如5/2=2,3/2=1 #include "stdio.h" #include "stdlib.h" #define MAXSIZE  阅读全文
posted @ 2020-11-18 20:41 封不烦 阅读(136) 评论(0) 推荐(0) 编辑
摘要: //链栈实现 //问题:判断括号式子是否匹配。如{[()]}是匹配的,而{[[])}是不匹配的。 //思路:将式子依次入栈,入栈之前将要入栈的括号与栈顶元素比较,能凑成一对则栈顶元素出栈,不能则该元素入栈。假如匹配,则最后栈必空 //为了方便配对,将每个符号编码 //如"("是-1,")"是1,"[ 阅读全文
posted @ 2020-11-16 20:22 封不烦 阅读(299) 评论(0) 推荐(0) 编辑
摘要: //想到两种方法,一是用栈把序列逆序对比,二是直接头尾对比字符串。 //问题:判断回文串 如1223不是回文串,而1221是 //思路1:分析以下回文的特点,会发现回文无论是正着读还是反着读都是一样的。所以只要进一次栈,出一次栈,看进入序列是否一样就好了 //思路2:直接判断前半段后半段对应位置是否 阅读全文
posted @ 2020-11-16 19:15 封不烦 阅读(1269) 评论(0) 推荐(0) 编辑