基本pathyon知识及算法
西安交通大学实验报告
课程名称:大学计算机基础实验名称:树和图的储存
学院:___理学院______________________ 实验日
期年月日
班级:_信计11_______________ 姓名:___王响
_____________学号: 2110902016
1.实验目的
了解通过计算机程序解决问题的方法。
理解树和图在计算机中的顺序存储方式。
2.实验任务与要求
(1)编写程序,计算信息熵。要求:用户从键盘输入各信息元符号的概率,输入0表示输入的数据结束,程序计算其信息熵并输出(2)实现二叉树的存储。要求自己构造一棵二叉树,将其用列表存储在计算中,用户输入某结点的值,计算其父结点和左右子结点并显示,如果没有,则显示“没有”之类的提示信息。
(3)实现图的存储。自己设计一个图,应至少有5个结点,6条边。将其存储在计算机中,用户输入结点的名称,如果是图中的结点,显示其邻接点。
3.实验工具和方法
操作系统:Windows操作系统
应用软件:Python语言环境
4.实验步骤与结果
(1) I=0
a=float(input("Please input probability a="))
while a!=0:
import math
b=math.log(a,2)
I=I-a*b
a=float(input("Please input probability a="))
print("the entropy is ",I)
Please input probability a=0.4
Please input probability a=0.22
Please input probability a=0.18
Please input probability a=0.1
Please input probability a=0.06
Please input probability a=0.04
Please input probability a=0
the entropy is 2.2161329359279525
(2)
binarytree=['','A','B','C','D','#','E','F','#','#','G','#',”H”,'I','J']
bsize=13
a=input(输入一个字母)
if a in binarytree:
l=binarytree.index(a)
if l==1:
print("这是根“)
else:
print(binarytree[l])
if l*2<=size and binarytree[l*2]!='#'
print (binarytree[l])
if l*2+1<=size and binarytree[l*2+1]!='#'
print(binarytree[l])
if l*2>size
print ("'It a leaf node'")
else end
五、实验总结(列出实验的结论、收获和存在的问题,必写)
实验结论:对树与图的储存有了进一步的认识与理解。
能进一步掌握编程语言,将所学的知识进行编程,灵活运用。但仍有一些语言障碍,应不断实践学习,熟练其语言。慢慢有了很多兴趣,相信会越做越好的。
(1)用户从键盘输入N,它表示将要输入N个数据。然后继续输入N 个不同的整数,出这N 个数中的最大、最小的数并在屏幕上输出。参考运行结果如下(带下划线的为输入数据):
N=int(input("请输入N\n"))
list=[]
list. insert(0, int(input("请输入数字 ")))
min=list[0]
max=list[0]
i=1
while i<N:
list.insert(i,int(input("请输入数字 ")))
if min>list[i]:
min=list[i]
if max<list[i]:
max=list[i]
i=i+1
print("最小数=",min,"最大数=",max)
结果:
>>>
请输入N
6
请输入数字 23
请输入数字 34
请输入数字 13
请输入数字 5
请输入数字 32
请输入数字 63
最小数= 5 最大数= 63
(2)用户从键盘输入N,它表示将要输入N个单词。然后继续输入N 个不同的单词,出这N 个单词中按字典排序的最前面的单词和排在最后的单词。参考运行结果如下(带下划线的为输入数据):
结果:
N=int(input("请输入N\n"))
list=[]
list. insert(0, (input("请输入单词")))
min=list[0]
max=list[0]
i=1
while i<N:
list.insert(i,(input("请输入单词")))
if min>list[i]:
min=list[i]
if max<list[i]:
max=list[i]
i=i+1
print("最前单词=",min,"最后单词=",max)
结果:
请输入N
5
请输入单词eat
请输入单词art
二叉树的遍历python请输入单词wet
请输入单词like
请输入单词more
最前单词= art 最后单词= wet
(3)用户从键盘输入N,它表示将要输入N个数据。然后继续输入N 个不同的整数,出这N个数中最接近100的数和它的位置(从1开始)并在屏幕上输出。如果这样的数多于1个,则只记录出现较早的数。
N=int(input("请输入N\n"))
list=[]
list. insert(0, int(input("请输入数字 ")))
number=list[0]
i=1
while i<N:
list.insert(i,int(input("请输入数字 ")))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论