c语言尾插法建立单链表--带头节点

#include
#include
typedef struct Lnode{//typedef 是c语言自带的关键字,
					//这里相当建立了一个像int的Lnode 
	int data;
	struct Lnode *next;
}Lnode,*Linklist;

Linklist InitListheadinsert(Linklist &L)//头插法建立单链表 
{
	Lnode *s;
	int x;
	L = (Lnode *)malloc(sizeof(Lnode));
	L->next=NULL;
	scanf("%d",&x);
	while(x!=9999){
		s = (Lnode *)malloc(sizeof(Lnode));
		s->data=x;
		s->next=L->next;
		L->next=s;
		scanf("%d",&x);
	}
	return L;
}

Linklist InitListtailinsert(Linklist &L)
{
	
	int x;
	L = (Lnode *)malloc(sizeof(Lnode));
	L->next=NULL;//头节点置空 
	Lnode *s ,*r=L;//*r是指向尾节点的指针 
	
	scanf("%d",&x);
	while(x!=9999){
		s = (Lnode *)malloc(sizeof(Lnode));
		s->data=x;
		r->next =s;//原本尾节点指向现在得s 
		r=s;//现在新的尾节点为s,r指向s 
		scanf("%d",&x);
	}
	r->next = NULL;
	return L;
}
int main()
{
	Linklist L;
	Linklist s =InitListtailinsert(L);
	printf("%d",s->next->next->data);
	
}

你可能感兴趣的:(c语言,开发语言,数据结构)