西电机电院自动化专业软件技术基础上机报告内容摘要:

sdata=ch。 rnext=s。 r=s。 ch=getchar()。 } rnext=NULL。 return head。 } /*删除头结点为 head 的链表中的结点 p*/ linklist *DELETE(linklist *p,linklist *head) { linklist *q=head。 while(qnext!=p) q=qnext。 qnext=pnext。 return p。 } /*对链表数据进行查找分类 */ void FIND(linklist *head) { linklist *p。 linklist *s_NUM=NUM,*s_CHAR=CHAR,*s_STRING=STRING。 //定义局部变量,以便将结果传给全局变量 p=headnext。 s_NUMnext=NULL。 班级 : 041132 学号 : 04113*** 姓名 : s_CHARnext=NULL。 s_STRINGnext=NULL。 while(p!=NULL) { if((pdata=39。 039。 )amp。 amp。 (pdata=39。 939。 )) //将数字结点链接在 s_NUM 之后 { s_NUMnext=DELETE(p,head)。 s_NUM=s_NUMnext。 p=pnext。 } else if((pdata=39。 A39。 )amp。 amp。 (pdata=39。 z39。 )) { s_CHARnext=DELETE(p,head)。 //将字母结点链接在 s_CHAR 之后 s_CHAR=s_CHARnext。 p=pnext。 } else { s_STRINGnext=DELETE(p,head)。 s_STRING=s_STRINGnext。 //将其他字符结点链接在 s_STRING 之后 p=pnext。 } } s_NUMnext=NULL。 s_CHARnext=NULL。 s_STRINGnext=NULL。 } /*打印当前链表 */ void PRINT(linklist *head) { linklist *p。 int j=0。 p=headnext。 while(p!=NULL) { j++。 printf(\nVALUE %d = %c,j,pdata)。 p=pnext。 班级 : 041132 学号 : 04113*** 姓名 : } } int main() { head=(linklist *)malloc(sizeof(linklist))。 //为 head 结 点分配空间 NUM=(linklist *)malloc(sizeof(linklist))。 //为数字链表的头结点分配空间。 CHAR=(linklist *)malloc(sizeof(linklist))。 //为字母链表的头结点分配空间。 STRING=(linklist *)malloc(sizeof(linklist))。 //为其他字符链表的头结点分配空间。 printf(\n*********************\nPlease input characters:\n)。 head=CREATLSTER()。 //尾插法建立链表 printf(\n*********************\n)。 printf(\n\n*********************\nthe input are:\n)。 PRINT(head)。 //打印当前链表 printf(\n*********************\n)。 FIND(head)。 //为 当前链表整理分类 printf(\n\n*********************\nthe numbers are:\n)。 PRINT(NUM)。 //打印数字链表 printf(\n*********************\n)。 printf(\n\n*********************\nthe characters are:\n)。 PRINT(CHAR)。 //打印字母链表 printf(\n*********************\n)。 printf(\n\n*********************\nthe others are:\n)。 PRINT(STRING)。 //打印其他字符链表 printf(\n*********************\n)。 return(1)。 } 第四题: /******************************************************************** 某百货公司仓库中有一批电视机,试按价格从高到低的次序建立一个循环链表,每个结点有价格、数量和指针三个域。 现新到 10 台价格为 4000 元的电视机,修改原链表并输出修改后链表的所有内容。 ********************************************************************/ include include include typedef struct node { int number。 float price。 班级 : 041132 学号 : 04113*** 姓名 : struct node *next。 }linklist。 /************************************************************* 用尾插法创建链表 **************************************************************/ linklist *CREAT() { int number1。 float price1。 linklist *head,*r,*s。 head=(linklist *)malloc(sizeof(linklist))。 r=head。 printf(Please Input the number And The Price:\n)。 scanf(%d%f,amp。 number1,amp。 price1)。 while((number1!=0)amp。 amp。 (price1!=0)) { s=(linklist *)malloc(sizeof(linklist))。 snumber=number1。 sprice=price1。 rnext=s。 r=s。 scanf(%d%f,amp。 number1,amp。 price1)。 } rnext=head。 return head。 } /******************************************************* 打 印链表 ********************************************************/ void PRINT(linklist *head) { linklist *p。 int i=0。 p=headnext。 while(p!=head) { i++。 printf(\nNO.%d THE NUMBER IS %d AND THE PRICE IS %f ,i,pnumber,pprice)。 p=pnext。 } } 班级 : 041132 学号 : 04113*** 姓名 : /******************************************************************** 对链表进行从高到低排序 ********************************************************************/ linklist *SORT(linklist *head) { linklist *p,*q。 int number2。 float price2。 p=headnext。 while(pnext!=head) { q=pnext。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。