插入结点的操作(单链表)

#include<stdio.h>
typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode,*LinkList;
void ListInsert(LinkList &L,LNode *p,LNode *s)
{
	LinkList q;
	if(p==L)
	{
		s->next=L;
		L=s;
	}
	else
	{
		q=L;
		while(q->next!=p)
			q=q->next;
		q->next=s;
		s->next=p;
	}
}
int main()
{
	int n,i;
	scanf("%d",&n);
	LinkList p=new LNode;
	LinkList L=p;
	for(i=0;i<n;i++)
	{
		LinkList s=new LNode;
		s->data=i;
		p->next=s;
		p=s;
	}
	p->next=NULL;
	LinkList x=L;
	scanf("%d",&n) ;
	for(i=1;i<=n;i++)
		x=x->next;
	LinkList y=new LNode;
	y->data=10;
	ListInsert(L,x,y);
	p=L->next;
	while(p)
	{
		printf("%d ",p->data);
		p=p->next;
	}
	printf("\n");
	return 0;
}

posted @ 2014-07-27 09:55  NYNU_ACM  阅读(198)  评论(0编辑  收藏  举报