|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#define MAX 20
typedef struct menu
{
char name[20];
int no;
struct menu *next;
}List;
void Creat_List(List * &h)
{
List *p;//用于插入
List *r=h;//尾指针 开始指向头指针
int i;
for(i=0;i<10;i++)
{
fflush(stdin);
p=(List *)malloc(sizeof(List));
printf("输入第%d位的姓名:",i+1);
gets(p->name);
printf("输入第%d位的学号:",i+1);
scanf("%d",&(p->no));
r->next = p;
r = p;
}
r->next = NULL;}
void Insert(List * &h)
{
List *p=h;//用于遍历链表
List *q;//用于插入
int k,i;
printf("输入插入的位置(1~10):");
scanf("%d",&k);
fflush(stdin);
q=(List *)malloc(sizeof(List));
printf("输入插入的姓名:");
gets(q->name);
fflush(stdin);
printf("输入插入的学号:");
scanf("%d",&(q->no));
for(i=0;i<k-1;i++)
p=p->next;
q->next = p->next;
p->next = q;
}
void Delete(List * &h)//删除第三个结点
{
List *p=h,*q;
int i;
for(i=0;i<2;i++)
p=p->next;
q = p->next;
p->next = q->next;
free(q);
}
void Disp(List * h)//输出链表
{
List *p=h->next;
printf("\t学号\t姓名\n");
while(p)
{
printf("%d\t%s\n",p->no,p->name);
p=p->next;
}
}
int main()
{
List * head;
head=(List *)malloc(sizeof(List));
Creat_List(head);
Insert(head);
Disp(head);
Delete(head);
Disp(head);
return 0;
}
|
|