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