咋样吧插入好的链表数据显示出来,我的程序只能显示最后一个数据,貌似结点指在最后一个数据处,咋让他回到开头啊
#include<stdio.h>#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
}NODE;
void Insert(NODE **p_head,int a,int b)
{
NODE *p,*q;
q=(NODE*)malloc(sizeof(NODE));
q->data=b;
q->next=NULL;
if(*p_head==NULL)
*p_head=q;
else
{
p=*p_head;
while(p->data!=a&&p->next!=NULL)
p=p->next;
p->next=q;
}
}
void main()
{
int i,m,n,x;
printf("请输入数据个数:\n");
scanf("%d",&n);
NODE *head,*p,*q;
if(n==0)
printf("链表数据个数不能为空!");
head=(NODE*)malloc(sizeof(NODE));
p=head;
printf("请输入数据:\n");
for(i=1;i<=n-1;i++)
{
scanf("%d",&(p->data));
q=(NODE*)malloc(sizeof(NODE));
p->next=q;
p=q;
}
scanf("%d",&(p->data));
p->next=NULL;
printf("请输入你要插入的位置:\n");
scanf("%d",&m);
printf("请输入你要插入的数:\n");
scanf("%d",&x);
Insert(&head,m,x);
for(i=0;i<n+1;i++)
{
printf("%d ",(p->data));
}
}