都在注释里,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;
}
个人复习过后的理解
若有错误,请指出!