1、准备
1
打开我们的Python shell界面,也就是大家所说的idle界面。
2
单击界面中的“file”-“new file”,就可以建立一个Python脚本了。
END
2、保存脚本文件
1
单击脚本文件中工具栏的“file”-“save”就可以实现我们调出我们的保存配置界面了。
2
在该界面中配置我们的文件名和要保存的路径就可以了。
END
3.编写代码
1
1.代码的结构:
本代码有两个子函数组成,据图有main函数和画树函数组成。
2
2.编写画树函数:
画树函数,就是用来画出我们的树的一种子函数,代码如下:
def tree(plist,l,a,f):
if l>5:
lst=[]
for p in plist:
p.forward(l)
q=p.clone()
p.left(a)
q.right(a)
lst.append(p)
lst.append(q)
tree(lst,l*f,a,f)
3
3.编写main函数:
main函数用来对画树的总体的配置,来画出我们整体的书代码如图下。
def main():
p=Turtle()
p.color('green')
p.pensize(11)
p.hideturtle()
p.speed(4)
# p.getscreen().tracer(30,0)
p.left(90)
p.penup()
p.goto(0,-100)
p.pendown()
t=tree([p],110,65,0.6375)
4
4.调用main函数:
在Python语言中与其它的语言不同的是,我们得在脚本中说明我们的主函数,而不是默认的main函数,具体如下。
main()
END
4、执行代码
单击“run”-“run module”,就可以运行我们的代码了。
接着就可以看到我们的运行界面了。
刚刚回答了一个类似的问题,以下代码供参考:#include "stdio.h"
#include "stdlib.h"
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef char TElemType
typedef int Status
typedef struct BiTNode { // 结点结构
TElemType data
struct BiTNode *lchild, *rchild
// 左右孩子指针
} BiTNode, *BiTree
//以下是建立二叉树存储结构,空节点输入作为#结束标识
Status CreateBiTree(BiTree &T) {
//请将该算法补充完整,参见第6章课件算法或课本
char ch
scanf("%c",&ch)
if(ch=='#') T=NULL
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
exit(OVERFLOW)
T->data=ch
CreateBiTree(T->lchild)
CreateBiTree(T->rchild)
}
return OK
} // CreateBiTree
void Preorder(BiTree T)
{
if(T)
{
printf("%c",T->data)
Preorder(T->lchild)
Preorder(T->rchild)
}
}
void Inorder(BiTree T)
{ // 中序遍历二叉树
//请将该算法补充完整,参见第6章课件算法
if(T)
{
Inorder(T->lchild)
printf("%c",T->data)
Inorder(T->rchild)
}
}
void Postorder(BiTree T)
{ // 后序遍历二叉树
//请将该算法补充完整,参见第6章课件算法
if(T)
{
Postorder(T->lchild)
Postorder(T->rchild)
printf("%c",T->data)
}
}
//以下是求叶子结点数
void CountLeaf(BiTree T,int&count){
//请将该算法补充完整,参见第6章课件算法
if(T){
if((!T->lchild)&&(!T->rchild))
count++
CountLeaf(T->lchild,count)
CountLeaf(T->rchild,count)
}
}
//以下是求二叉树的深度
int Depth(BiTree T ){
//请将该算法补充完整,参见第6章课件算法
int depthval,depthLeft,depthRight
if(!T) depthval=0
else{
depthLeft = Depth(T->lchild)
depthRight = Depth(T->rchild)
if(depthLeft>depthRight)depthval = 1+depthLeft
else depthval = 1+depthRight
}
return depthval
}
void main(){
BiTree T
int s=0,d
printf("\n creat of the bitree:\n")
CreateBiTree(T)
printf("\n output result of Preorder:\n")
Preorder(T)
CountLeaf(T,s)
d=Depth(T)
printf("\n leaves=%d\n",s)
printf("\n depth=%d\n",d)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)