#include "stdio.h"#include<malloc.h>#include<string.h>#include<ctype.h>#define LEN sizeof(struct student)struct student{		long num;	float score;	struct student*next;};struct student*creat(){	struct student *head;    struct student*p1,*p2;	char ch;	int a=0;	head=NULL;            printf("是否输入新数据?(y/n):");        while(toupper(ch=getchar())=='Y')    {      p1=(struct student * )malloc(LEN);      a++;      printf("\n请输入:");      scanf("%ld,%f",&p1->num,&p1->score);      printf("是否输入新数据?(y/n):");      scanf("%ld,%f",&p1->num,&p1->score);      getchar();      printf("是否输入新数据:?(y/n):");            if(a==1)      {       head=p1;       p2=p1;      }      else			      {	       p2->next=p1;        p2=p1;      }      p1->next=NULL;      }    return (head);}struct student * insert(struct student * head){    struct student *p0,*p1,*p2;    p0=(struct student * )malloc(LEN);    printf("\n输入所要插入节点的数据:");    scanf("%ld,%f",&p0->num,&p0->score);    p1=head;    if(head==NULL)    {      head=p0;      p0->next=NULL;    }    else    if(p1->num>p0->num)    {    	p0->next=head;    	head=p0;    }    else    {    	while(p1!=NULL)    	{    		if(p1->num<p0->num)    		{    			p2=p1;    			p1=p1->next;    		}    		else    		{    			p0->next=p1;    			p2->next=p0;    			break;    		}    	}    	if(p1==NULL)    	{    	 p0->next=NULL;    	 p2->next=p0;    	}    	    }    return(head);   }/////void print(struct student *head){	struct student *p;	p=head;	while(p!=NULL)	{		printf("\n学生学号:%d,成绩:%4.1f",p->num,p->score);		p=p->next;	}}struct student *del(struct student *head){	struct student *p1,*p2;	long num;	printf("\n请输入所要删除的学号:");	scanf("%ld",&num);	if(head==NULL)	{		printf("\n链表为空!\n");		return(head);		}		if(head->num==num)		{		 printf("删除学号:%ld,成绩%4.1f",head->num,head->score);		 return(head);		 }		 else		 {		  p2=head;		  p1=head->next;		  while(p1!=NULL)		  {		   if(p1->num==num)		   {		    p2->next=p1->next;		    break;		    }		    else		    {		     p2=p1;		     p1=p1->next;		     }		    }		    return(head);		    }		   }		     void main( ){	struct student *stu;//用于指向结构体变量	stu=creat();	stu=insert(stu);	print(stu);	stu=del(stu);	print(stu);}
                    
                    
                - 3 回答
- 0 关注
- 1376 浏览
添加回答
举报
0/150
	提交
		取消
	
 
                    