树与二叉树
1.学习总结
1.1树结构思维导图
1.2 树结构学习体会
可以对数据进行排序,还有查找和分类增加效率。
2.PTA实验作业
2.1 题目1:6-1 jmu-ds-二叉树操作集
CreateBTree(&BT,str)
{ 新建结点->T;
新建队列->Q;
i=0;
if str为空
new结点->BT;
BT->data=str[i];
BT->left,right=NULL;
BT push Q
else end;i++;
while Q不为空{
队首元素out;
if str='#'或为空
T-> left =NULL
end if
else {新建T的左结点;
赋值=str[i];
T的左结点-> left,right为空;
T的左结点进栈Q;
}
i++;
if str='#'或为空
T-> right =NULL
end if
else {新建T的右结点;
赋值=str[i];
T的右结点-> left,right为空;
T的右结点进栈Q;
}i++;
}}PreOrder(BT)
if BT不为空
if flag为0 输出BT值
end if else
输出‘ ’和BT值
flag=1;
PreOrder(BT->left);
PreOrder(BT-> right);
end if
}{定义静态变量flag=0;
if BT不为空
InOrder(BT-> left);
if flag为0 输出BT值
else
输出‘ ’和BT
flag=1;
InOrder(BT->右);
end if
}PostOrder(BT)
{定义静态变量flag=0;
if BT不为空PostOrder(BT->
left);
PostOrder(BT-> right);
if flag为0 输出BT值
else
输出‘ ’和BT值
flag=1;
end if}
题目2:6-4 jmu-ds-表达式树
2.2 设计思路(伪代码或流程图)
InitExpTree(&T,str)用两个栈建树 {新建栈s;新建栈op; ‘#’入栈op; while(str不为空) {if 不是符号 NEW T赋值->str[i++]; T->左,右=NULL; T进栈s; else{switch 判断优先级{ case‘<’; str[i]进栈; i++;case‘=’: op出栈栈顶元素; i++;case:‘>’: new;T赋值op栈顶元素; T->右=s栈顶元素; s栈顶元素出栈; T->左=s栈顶元素; s栈顶元素出栈; T进栈s;op栈顶元素出栈; while op不为‘#’ {新建T结点;T赋值op栈顶元素; T->右=s栈顶元素; s出栈;if s不为空 T->左=s栈顶元素; s出栈;
2.3 代码截图
2.4 PTA提交列表说明。
语法以及一些语句的运用失误
题目3:7-7 朋友圈(25 分)
2.2 设计思路(伪代码或流程图)
2.3 代码截图
2.4 PTA提交列表说明。
3.截图本周题目集的PTA最后排名
本次题目集总分:285分
必做题共:230分
3.1 PTA排名截图
3.2 我的总分:
205
4. 阅读代码(必做)
本次为必做
- 找1篇和树结构有关的代码,说明该代码功能是什么,优点是什么?
- 给出代码相关地址。
5. 代码Git提交记录截图