头插法和尾插法创建单链表

#include 
using namespace std;
struct LNode{
	int data;
	LNode *next;
};

typedef LNode* LinkList;

void input(int *data){
	cin>>*data;
} 

void creatList(LinkList *L,int n){                   //之所以用LinkList *L 而不是LinkLinst L,是因为得到了这个指针的地址,就得到了这个指针, 
	LinkList s;	                                    //如果用LinkList l,则只能的到这个指针指向的内容,却得不到这个指针。 
	*L=new LNode;                                   //创建头结点 
	(*L)->next=NULL;
	for(;n>0;n--){
		s=new LNode;
		input(&s->data);							//头插法 
		s->next=(*L)->next;							//将s增加到开始节点之前 
		(*L)->next=s;
	} 
}

void creatListBack(LinkList *L,int n){
	LinkList p,s;									//尾插法 
	p=*L=new LNode;
	for(;n>0;n--){
		s=new LNode;
		input(&s->data);
		p->next=s,p=s;
	}
	p->next=NULL;
} 

int main(void){
	int n;
	LinkList L;
	creatList(&L,n);
	return 0;
}

你可能感兴趣的:(C++)