1.学习总结
1.1树结构思维导图
使用思维导图将树结构的知识点串在一起。树中的每个知识点需细化到每个操作如何实现。
1.2 树结构学习体会
谈谈你对树结构认识,学习这个结构是否遇到哪些困难,树结构可以解决的问题。
1.树是一种较为抽象的非线性结构,是较难点,部分固定的套路公式要牢记,灵活运用。
2.课堂上的知识都能听懂,但是一到打代码就开始慌了,需要加强代码的练习。
3.一些代码可以在书本上找到范例,要多研究课本。
2.PTA实验作业
本周要求挑选出3道题目书写设计思路、调试过程。设计思路使用伪代码描述。
2.1 题目1:7-1 还原二叉树
2.2 设计思路(伪代码或流程图)
/*RestoreTree函数*/建立头结点 head;for i=0;i小于n-1时; if 字符串z第i位等于字符串x的第x1位且i不等于z1; 对head的左孩子进行递归运算; if 字符串z第i位等于字符串x的第x1位且i不等于z2; 对head的右孩子进行递归运算;break;return;
2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)
2.4 PTA提交列表说明
编译错误:结构体没有设置好,导致编译错误。
答案错误:建树函数忘记return p。
编译错误:struct Node、mallco语句出错。
2.1 题目2:6-2 求二叉树高度
2.2 设计思路(伪代码或流程图)
/*求树的高度*/设置 lchild,rchild;if 树为空 return空;else遍历lchild=GetHeight;遍历rchild=GetHeight;return lchild和rchild中值较大的值+1;
2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)
2.4 PTA提交列表说明
这题较为简单,可以在书上找到范例。
2.1 题目3:6-4 jmu-ds-表达式树
2.2 设计思路(伪代码或流程图)
/*InitExpTree函数*/设置栈 op treepush '#'while str[i]不为空if In函数为假建立新节点,push Telse switchcase '<' 入栈str[i] breakcase '=' 栈顶出栈 breakcase '>' 建立新节点T,将数据存入树中并出栈数据 breakwhile 栈顶不为'#'建立新节点T,将数据存入树中并出栈数据
2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)
3.截图本周题目集的PTA最后排名
本次题目集总分:285分
必做题共:230分3.1 PTA排名截图
3.2 我的总分:230分——2.5分
本题评分规则:
(1)2个题目集PTA总分285分:3分(全部题目都做) (2)PTA总分在230分--340分:2.5分(必做题全部做完,选做题做部分) (3)PTA总分在180--230分:2分(必做题大部分做完) (4)PTA总分在130--180分:1.5分 (5)PTA总分在105分-130分:1分 (6)PTA总分在105分以下:0分
4. 阅读代码(必做)
1 #include2 #include 3 #include 4 char a[1000]; 5 int ant = 0,c = 0; 6 typedef struct Node 7 { 8 char Data; 9 struct Node *Left,*Right;10 }Node;11 Node *CreatNode()12 {13 Node *p = (Node *)malloc(sizeof(Node));14 p -> Left = p -> Right = NULL;15 return p;16 }17 Node *CreatTree()18 {19 if(a[ant] == '#')20 {21 ant ++;22 return NULL;23 }24 Node *head = CreatNode();25 head -> Data = a[ant ++];26 head -> Left = CreatTree();27 head -> Right = CreatTree();28 if(head -> Left == NULL && head -> Right == NULL)c ++;29 return head;30 }31 void InOrder(Node *T)32 {33 if(T == NULL)return;34 InOrder(T -> Left);35 putchar(T -> Data);36 InOrder(T -> Right);37 }38 int main()39 {40 scanf("%s",a);41 Node *head = CreatTree();42 InOrder(head);43 putchar('\n');44 putchar('0'+c);45 }
地址:优点:运用递归的方法,将程序简化,找到叶子结点后c++。
5. 代码Git提交记录截图