都在註釋裏,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;
}
個人複習過後的理解
若有錯誤,請指出!