#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
typedef struct Node
{
Elemtype data;
struct Node *next;
}Node,*LinkList;
/*初始化单链表*/
void InitList(LinkList *h)
{
*h=(LinkList)malloc(sizeof(Node));
(*h)->next=NULL;
}
/*创建一个单链表*/
void creatList(LinkList h)
{
LinkList p,q;
q=h;
p=(LinkList)malloc(sizeof(struct Node));
scanf("%d",&p->data);
while(p->data!=-1)
{
q->next=p;
q=p;
p=(LinkList)malloc(sizeof(struct Node));
scanf("%d",&p->data);
q->next=NULL;
}
}
int printList(LinkList L)
{
Node *p;
p=L->next;
while(p)
{
printf("%5d",p->data);
p=p->next;
}
return 0;
}
/*输入x,y。在第1个结点值为x后插入y,若无结点x,则在表尾插入结点y;*/
int insertList(LinkList h,int x,int y) { Node *p; LinkList s; p=h->next; while(h->data==x) s=(LinkList)malloc(sizeof(Node)); // 生成新结点 s->data=y; s->next=p->next; // 插入L中 p->next=s; }
int main()
{
LinkList h;
int x,y;
InitList(&h);
printf("请输入数据(以-1结束):\n");
creatList(h);
printf("单链表中的数据为:");
printList(h);
printf("请输入查找元素及插入元素:");
scanf("%d%d",&x,&y);
insertList(h,x,y);
printList(h);
printf("\n");
return 0;
}
这一行修改一下:
// 插入L中 p->next=s; }
改为:
// 插入L中 p->next=s;
}