#include "stdio.h"
#include"stdlib.h"
struct Student* first ();
struct Student *add(struct Student *head,int site,int value);
void puts(struct Student *p);
struct Student{
int a;
struct Student *next;
};
int main()
{
struct Student *head,*p;
int t,site,value;
head=first();
for(p=head;p!=NULL;p=p->next)//遍历
printf("%d ",p->a);
printf("\n请输入你要插入的整数与插入的位置为第几位元素:");
scanf("%d %d",&value,&site);
head=add(head,site,value);
p=head;
puts(p);
return 0;
}
struct Student* first (){//建立链表,输入数据,并返回链头的指针
struct Student *p1,*p2,*head;
int i;
head=NULL;
p1=p2=(struct Student*)malloc(sizeof(struct Student));
printf("请输入5个整数:\n");
scanf("%d",&p1->a);
head=p1;
for(i=1;i<5;i++){
p1=(struct Student*)malloc(sizeof(struct Student));
scanf("%d",&p1->a);
p2->next=p1;
p2=p1;
}
p2->next=NULL;
return (head);
}
struct Student *add(struct Student *head,int site,int value)
{
struct Student *p=head;
struct Student *p1=(struct Student*)malloc(sizeof(struct Student));
p1->a=value;
int i=1;
for(i=1;i<site-1;i++) head=head->next;
p1->next=head->next;
head->next=p1;
return p;
}
void puts(struct Student *p)
{
for(;p!=NULL;p=p->next)
printf("%d ",p->a);
}
输出显示:
请输入5个整数:
1 2 3 5 6
1 2 3 5 6
请输入你要插入的整数与插入的位置为第几位元素:4 4
1 2 3 4 5 6
动态链表,向链表中添加一个整数。就是添加一个新的结点,并将添加后的链表进行输出
最新推荐文章于 2024-03-31 14:45:55 发布