都在注释里,emmm……

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
typedef struct Llist{
	int data;
	struct Llist *next;//结构体指针嵌套使用
}Llist;
//尾插法建立单链表,r头指针指向s尾指针
void creatlist(Llist *&c,int a[],int n){
	Llist *r,*s;
	c=(Llist *)malloc(sizeof(Llist));//动态分配空间
	c->next=NULL;//c的指针域置空
	r=c; //r指向c的结点
	for(int i=0;i<n;++i){
		s=(Llist *)malloc(sizeof(Llist));//动态分配空间,每次都不一样秒!
		s->data=a[i];//为s头结点数据域赋值
		r->next=s;//r的结点指针指向s结点
		r=r->next;//
	}
	r->next=NULL;//指针域置空 
}
void printlist(Llist *c,int length){
	int temp;
	for(int i=0;i<length;++i){
		c=c->next;//第一次取头指针,不断往下走
		temp=c->data;//取出指针对应得数据
		cout<<temp<<" ";//打印
	}
}
int main(){
	int a[]={1,2,3,4,5,6,7,8,9};
	Llist *demo;//定义demo
	creatlist(demo,a,9);
	printlist(demo,9);
	return 0;
}

尾插法建立链表_动态分配


个人复习过后的理解

若有错误,请指出!