C语言用头插法建立单链表

emm,都在注释里……

#include
#include
#include
using namespace std;
typedef struct Llist
{
	int data;
	struct Llist *next;//指针嵌套使用,就像一条直线无限延长
}Llist; 
//头插法,s的指针指向c的头结点的指针
void createlist(Llist *&c,int a[],int length){
	Llist *s;
	c=(Llist *)malloc(sizeof(Llist));
	c->next=NULL;//把c的指针置空,就像把一条直线变成射线
	for(int i=0;i<length;++i){
		s=(Llist *)malloc(sizeof(Llist));//分配空间 
		s->data=a[i];//赋值 
		s->next=c->next;//头结点 
		c->next=s;//头结点 
	}
}
void printlist(Llist *c,int length){
	for(int i=0;i<length;++i){
		c=c->next;
		cout<<c->data<<" "; 
	}
}
int main(){
	int n;
	cout<<"输入长度n:\n"; 
	cin>>n;
	cout<<"输入"<<n<<"个数据:\n"; 
	int arry[n];
	for(int i=0;i<n;++i){
		cin>>arry[i];
	}
	Llist *list;
	createlist(list,arry,n);
	cout<<"list元素:\n";
	printlist(list,n);
	return 0;
}

像栈先进后出
C语言用头插法建立单链表_第1张图片

你可能感兴趣的:(数据结构)