资源描述:
《学生基本信息链表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、已知学生基本信息由学号(长整型)、姓名(字符数组)、性别(字符型)、年龄(整型)组成。定义如下结构类型://定义结构体:存储学生基本信息structSTUDENT_NODE{longintid;charname[MAX_LEN];charsex;intage;//指针指向下一个结点,用以形成链表STUDENT_NODE*next;};//定义结构体:存储单向链表structSTUDENT_LINK{STUDENT_NODE*top;};应用上述结构类型,编程实现:建立一个结点按学号顺序存储学生信息的单向链表,并实现依据学号对链表的添
2、加、修改、删除和检索功能;添加新结点后,应继续保持结点按学号顺序的链接方式。分别定义函数实现链表的初始化、链表的打印输出、以及在链表中添加、修改、删除和检索节点的功能;最后在main()中进行测试输出。提示:定义函数实现链表的初始化、链表的打印输出、以及在链表中添加、修改、删除和检索节点的功能voidiniStudentLink(STUDENT_LINK*L);//初始化学生链表voidclearStudentLink(STUDENT_LINK*L);//清空学生链表intisExist(STUDENT_LINK*L,longint
3、id);//判断该学号的学生信息是否存在intAdd(STUDENT_LINK*L,longintid,charname[],charsex,intage);//添加一个新同学的信息intModify(STUDENT_LINK*L,longintid,charname[],charsex,intage);//根据学号,修改该同学的信息intDelete(STUDENT_LINK*L,longintid);//根据学号,从链表中删除该同学的信息intSearch(STUDENT_LINK*L,longintid);//根据学号,输出显
4、示该同学信息voidShowALL(STUDENT_LINK*L);//从头到尾,输出当前所有的同学信息答案:源代码如下voidmain(){STUDENT_LINK*tjut;tjut=newSTUDENT_LINK;iniStudentLink(tjut);Add(tjut,2007002,"Tom",'M',19);Add(tjut,2007007,"Jack",'M',20);Add(tjut,2007004,"Mary",'F',20);ShowALL(tjut);Modify(tjut,2007002,"TomSmith
5、",'M',19);Search(tjut,2007002);Delete(tjut,2007004);ShowALL(tjut);clearStudentLink(tjut);deletetjut;}///////////////////////////////////////////////////////////////////////////////////////////*初始化学生链表*/voidiniStudentLink(STUDENT_LINK*L){L->top=newSTUDENT_NODE;//top结点是个
6、内容为空的"结点",注意其作用L->top->id=0;L->top->next=NULL;}/*清空学生链表*/voidclearStudentLink(STUDENT_LINK*L){STUDENT_NODE*ptr;while(L->top!=NULL){ptr=L->top;L->top=L->top->next;deleteptr;}return;}/*判断该学号的学生信息是否存在:存在返回1,不存在返回0*/intisExist(STUDENT_LINK*L,longintid){intexist;STUDENT_NOD
7、E*ptr;exist=0;ptr=L->top;while(ptr!=NULL){if(id==ptr->id)//此学生信息已存在{exist=1;break;}ptr=ptr->next;}returnexist;}/*添加一个新同学的信息*/intAdd(STUDENT_LINK*L,longintid,charname[],charsex,intage){interror;intexist;STUDENT_NODE*ptr;STUDENT_NODE*node;error=0;exist=isExist(L,id);if(e
8、xist==1){error=1;cout<<"Error!!!错误添加:id="<top;while((ptr->next!=NULL)&&(p