单链表的实现
设计一个Python程序,可以让用户输入数据来新增学生数据节点,并建立一个单向链表
import sys class student():#声明一个学生成绩的结构声明 def __init__(self): self.name="" self.Math=0#数学分数 self.Engh=0#英语分数 self.no=""#学号 self.next=None head=student()#建立链表头部 head.next=None#当前无下一个元素 ptr=head#设置存取指针的位置,结构指针ptr作为链表的游标 MathSum=EngSum=num=student_no=0 select=0 while select !=2: print('1新增 2离开---') try: select=int(input('请输入数字')) except ValueError: print('输入错误') print('请重新输入') if select==1: new_data=student()#新增下一个元素 new_data.name=input("姓名:") new_data.Math=eval(input("数学:")) new_data.Engh=eval(input("英语:")) new_data.no=input('学号:') ptr.next=new_data new_data.next=None ptr=ptr.next num=num+1 ptr=head.next#设置存取指针从链表头部开始 print() while ptr!=None: print('姓名:%s\t学号:%s\t数学成绩:%d\t英语成绩:%d' \ %(ptr.name,ptr.no,ptr.Math,ptr.Engh)) MathSum=MathSum+ptr.Math EngSum=EngSum+ptr.Engh student_no=student_no+1 ptr=ptr.next#将ptr移到下一个元素 if student_no!=0: print('######################') print('本链接中学生的数学平均成绩:%.2f 英语平均成绩:%.2f' \ %(MathSum/student_no,EngSum/student_no))