数据结构期中反思
来源:互联网 发布:肯德基麦当劳知乎 编辑:程序博客网 时间:2024/06/07 05:54
期中考之后,自己读代码和读题的能力都不够。
由于是英文的试卷,所以忽略了一些题干的要求,不像中文那么敏感。
读代码存在想当然的问题,先入为主,遇到自己不擅长并且不确定的边界条件的时候,举一些具体的实例来判断。
错题:
1.
这是一个有头结点的链表,cnt数的是节点(不含头结点)的个数,读取的时候读到的是第pos个位置,也就是倒数第k个位置。
2.判断一棵树是否为满树。
自己的做法是递归判断是否有左子树和右子树。但是这样忽略了所有叶节点要在一层的要求。
正确的应该是递归得到节点个数n以及深度h判断是否满足 n = 2^h -1
#include<stdio.h>#include<stdlib.h>typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild; //left,right child pointer}BiTNode,*BiTree;void start(){printf("按照先序遍历的方式输入你的树。\n");printf("不存在的元素以#替代。\n");}int CreateBiTree(BiTree &T){char ch;//scanf("%c",&ch);ch=getchar();if(ch == '#') T =NULL;else{if(!(T=(BiTNode*)malloc(sizeof(BiTNode)))) return 1;else {T->data = ch; }CreateBiTree(T->lchild);CreateBiTree(T->rchild);}return 0;}int getDepth(BiTree T){if(T){int a = getDepth(T->lchild); //the deepth of lchildint b = getDepth(T->rchild); //the deepth of rchildreturn a>b? (a+1):(b+1); }else return 0;}void Count(BiTree T,int &i){if(T){i++; Count(T->lchild,i);Count(T->rchild,i);} }int main(){start();BiTree T;CreateBiTree(T);int depth = getDepth(T);int num;Count(T,num);printf("%d %d\n",depth,num);if(num==(depth*depth-1))printf("这棵树是满树。\n");else printf("这棵树不是满树。\n");}
期中确实是一个教训,接下来继续加油了。
今日看到一句话,如果目标是星星,那么及时掉下来也会落在树上。
阅读全文
0 0
- 数据结构期中反思
- 期中反思
- 数据结构--用C语言描述 耿国华 期中测试题
- 期中考
- 期中作业
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 反思
- 要求循环录入2个班的学员成绩,假设每个班都有3个学员, 依次录入,统计超过90分的学员人数,以及这批超过90分的学员平均分。
- Oil Skimming HDU
- 循环队列
- UVA 1048 Low Cost Air Travel
- python中容易误解的小问题和函数中的参数
- 数据结构期中反思
- HDU2057ac代码(改题目要求输出都为大写字母,必须做个转换,类比十进制)
- 主键 外键 索引
- ACdream
- 九九乘法表类型二
- 求出1-100之间既能被3整除又能被5整除的 (且要求跳过能够被10整除的数)所有数之和。 补充说明:比如30,既能被3整除又能被5整除, // 但是能够被10整除,所以30不
- 在node中使用 ES6
- Android_数据的三级缓存
- 自顶向下 逐步求精