资源描述:
《单链表的操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单链表的操作本程序旨在使用设计的数据结构和算法实现单链表的初始化、删除、遍历、查找、插入、排序等基本操作。单链表的结点保存一个结构体信息(如学号、姓名、成绩1、成绩2、总成绩)。测试平台:VC++6.0。/************main.c**********/#include#include#include#include#include"Linklist.h"/*-----------------------------------主函数-----------------
2、-----------------*/voidmain(void){FILE*fp;PLinklisth=NULL,last=NULL,head=NULL;StuDentrst;inttotal,pos;charkeybuf,flag;Init_Linklist(&h);//初始化last=h;/*Openfileforinput:*/system("color4F");//背景颜色/*用system("color0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色
3、8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色*/system("pause");//按任意键开始if((fp=fopen("Score.txt","r"))==NULL){perror("fopenerror");//读文件出错,退出exit(-1);}while(1){if(fgets(buf,256,fp)==NULL)break;//-->文件已经读空,退出读循环sscanf(buf,"%s%s%d%d%d",rst.sid,rst.name,&rst.sc1,&rst.sc2,&rst.sc3);//从一个字符串
4、中读进与指定格式相符的数据printf("Read:[%s]",buf);printf("Data[%s%s%d%d%d]",rst.sid,rst.name,rst.sc1,rst.sc2,rst.sc3);Read_Linklist(&last,rst);printf("Tweaverse:");Traverse_Linklist(h);total=Length_Linklist(h);printf("%d",total);}fclose(fp);//读文件操作结束,关闭文件while(1){system("pause");//暂停sy
5、stem("cls");//清屏printf("**************************");printf("*链表操作*");printf("**************************");printf("—————————————————主菜单——————————————————");printf("**********S__遍历:*********");printf("**********I__插入:*********");printf("**********D__删除结点:*********");p
6、rintf("**********F__查找内容:*********");printf("**********L__查看结点数:*********");printf("**********Q__写入文件并退出:*********");printf("**********B__排序(升序):*********");fflush(stdin);//清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件printf("——————————————————————————————————————");printf("请你选择操作编号:");
7、printf("-->");keybuf=getchar();switch(keybuf){case'S':Traverse_Linklist(h);break;case'D':printf("请选择您删除的结点:");printf("-->");scanf("%d",&pos);Delete_Linklist(h,pos);break;case'L':printf("链表长度为:");total=Length_Linklist(h);printf("%d",total);break;case'Q':File_Linklist(h);//写入文
8、件exit(1);case'I':printf("请输入要插入的结