实现单链表的方法

实现单链表的方法

实现单链表的方法/**
实现单链表的方法*File:Main.c
实现单链表的方法*Descript:单链表操作
实现单链表的方法*Author:Red_angelX
实现单链表的方法
*/
实现单链表的方法
实现单链表的方法
#include<stdio.h>
实现单链表的方法#defineMAXNUM100
实现单链表的方法
实现单链表的方法/**
实现单链表的方法*学生结构体链表
实现单链表的方法*
*/
实现单链表的方法typedefstructstudent
实现单链表的方法{
实现单链表的方法int
number;
实现单链表的方法charname[
10];
实现单链表的方法intscore;
实现单链表的方法
//新增链表指针
实现单链表的方法structstudent*next;
实现单链表的方法}student;
实现单链表的方法
实现单链表的方法
/**
实现单链表的方法*创建链表
实现单链表的方法*
*/
实现单链表的方法student*create()
实现单链表的方法{
实现单链表的方法intn
,i;
实现单链表的方法student
*head,*preview,*current;/*head表头preview前一个current当前*/
实现单链表的方法if((head=(student*)(malloc(sizeof(student))))==NULL)
实现单链表的方法{
实现单链表的方法
printf("无法分配内存");
实现单链表的方法
exit(0);
实现单链表的方法}
实现单链表的方法head
->next=NULL;/*表头置空初始化*/
实现单链表的方法preview=head;/*preview指向表头*/
实现单链表的方法
实现单链表的方法
printf("请输入学生数:");
实现单链表的方法scanf(
"%d",&n);
实现单链表的方法
for(i=0;i<n;i++)
实现单链表的方法{
实现单链表的方法
if((current=(student*)(malloc(sizeof(student))))==NULL)
实现单链表的方法{
实现单链表的方法
printf("无法分配内存");
实现单链表的方法
exit(0);
实现单链表的方法}
实现单链表的方法preview
->next=current;/*把前一个节点指向当前节点,连接所有链表*/
实现单链表的方法printf("请输入学生%d的数据: ",i+1);
实现单链表的方法
printf("学号:");
实现单链表的方法scanf(
"%d",&current->number);
实现单链表的方法
printf("姓名:");
实现单链表的方法scanf(
"%s",&current->name);
实现单链表的方法
printf("成绩:");
实现单链表的方法scanf(
"%d",&current->score);
实现单链表的方法
current->next=NULL;
实现单链表的方法preview
=current;
实现单链表的方法}
实现单链表的方法
return(head);
实现单链表的方法}
实现单链表的方法
实现单链表的方法
/**
实现单链表的方法*查找节点
实现单链表的方法*
*/
实现单链表的方法voidfind(student*stu)
实现单链表的方法{
实现单链表的方法intx;
实现单链表的方法student
*head;
实现单链表的方法
printf("请输入要查找学生的学号:");
实现单链表的方法scanf(
"%d",&x);
实现单链表的方法head
=stu;
实现单链表的方法
实现单链表的方法
while(head&&head->number!=x)
实现单链表的方法{
实现单链表的方法head
=head->next;/*指向下条记录*/
实现单链表的方法}
实现单链表的方法
if(head)
实现单链表的方法{
实现单链表的方法
printf("学号姓名成绩 ");
实现单链表的方法
printf("%6d",head->number);
实现单链表的方法
printf("%s",head->name);
实现单链表的方法
printf("%6d ",head->score);
实现单链表的方法}
实现单链表的方法
else
实现单链表的方法{
实现单链表的方法
printf("没找到! ");
实现单链表的方法}
实现单链表的方法}
实现单链表的方法
实现单链表的方法
/**
实现单链表的方法*插入节点
实现单链表的方法*就当往最后插入了
实现单链表的方法*
*/
实现单链表的方法voidinsert(student*stu)
实现单链表的方法{
实现单链表的方法inti
,n;
实现单链表的方法student
*head,*current;
实现单链表的方法
printf("请插入学生数:");
实现单链表的方法scanf(
"%d",&n);
实现单链表的方法head
=stu;
实现单链表的方法
//把head移动到最后
实现单链表的方法while(head->next)
实现单链表的方法head
=head->next;
实现单链表的方法
实现单链表的方法
for(i=0;i<n;i++)
实现单链表的方法{
实现单链表的方法
if((current=(student*)(malloc(sizeof(student))))==NULL)
实现单链表的方法{
实现单链表的方法
printf("无法分配内存");
实现单链表的方法
exit(0);
实现单链表的方法}
实现单链表的方法head
->next=current;
实现单链表的方法
printf("请输入学生%d的数据: ",i+1);
实现单链表的方法
printf("学号:");
实现单链表的方法scanf(
"%d",&current->number);
实现单链表的方法
printf("姓名:");
实现单链表的方法scanf(
"%s",&current->name);
实现单链表的方法
printf("成绩:");
实现单链表的方法scanf(
"%d",&current->score);
实现单链表的方法
current->next=NULL;
实现单链表的方法head
=current;
实现单链表的方法}
实现单链表的方法}
实现单链表的方法
实现单链表的方法
/**
实现单链表的方法*删除节点
实现单链表的方法*
*/
实现单链表的方法voiddelete(student*stu)
实现单链表的方法{
实现单链表的方法intx;
实现单链表的方法student
*head,*temp;
实现单链表的方法
实现单链表的方法
printf("输入要删除成绩学生的学号:");
实现单链表的方法scanf(
"%d",&x);
实现单链表的方法head
=stu;
实现单链表的方法
实现单链表的方法
while(head->next&&head->next->number!=x)
实现单链表的方法{
实现单链表的方法head
=head->next;/*指向下条记录*/
实现单链表的方法}
实现单链表的方法
实现单链表的方法
if(head->next)
实现单链表的方法{
实现单链表的方法temp
=head->next;
实现单链表的方法head
->next=head->next->next;
实现单链表的方法free(temp);
实现单链表的方法
printf("已删除! ");
实现单链表的方法}
实现单链表的方法
else
实现单链表的方法{
实现单链表的方法
printf("无此学生成绩,无法删除! ");
实现单链表的方法}
实现单链表的方法}
实现单链表的方法
实现单链表的方法
/**
实现单链表的方法*主函数,链表操作
实现单链表的方法*
实现单链表的方法*Author:Red_angelX
实现单链表的方法
*/
实现单链表的方法voidmain()
实现单链表的方法{
实现单链表的方法student
*stu;
实现单链表的方法intk;
实现单链表的方法
while(1)
实现单链表的方法{
实现单链表的方法
//clrscr();
实现单链表的方法printf("****************************** ");
实现单链表的方法
printf("|学生成绩管理| ");
实现单链表的方法
printf("|*******************************| ");
实现单链表的方法
printf("|1登记成绩| ");
实现单链表的方法
printf("|2查询成绩| ");
实现单链表的方法
printf("|3插入成绩| ");
实现单链表的方法
printf("|4删除成绩| ");
实现单链表的方法
printf("|0退出程序| ");
实现单链表的方法
printf("|*******************************| ");
实现单链表的方法
printf("|CodeByRed_angelX| ");
实现单链表的方法printf("******************************* ");
实现单链表的方法
printf(" ");
实现单链表的方法
printf("请输入选择的功能号:");
实现单链表的方法scanf(
"%d",&k);
实现单链表的方法
switch(k)
实现单链表的方法{
实现单链表的方法
case1:
实现单链表的方法stu=create();
实现单链表的方法
break;
实现单链表的方法
case2:
实现单链表的方法find(stu);
实现单链表的方法
break;
实现单链表的方法
case3:
实现单链表的方法insert(stu);
实现单链表的方法
break;
实现单链表的方法
case4:
实现单链表的方法delete(stu);
实现单链表的方法
break;
实现单链表的方法
case0:exit(0);
实现单链表的方法
default:printf("选择错误!");
实现单链表的方法}
实现单链表的方法}
实现单链表的方法
实现单链表的方法}
实现单链表的方法
实现单链表的方法
实现单链表的方法
实现单链表的方法