尾插法建立鏈表

都在註釋裏,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;
}

在這裏插入圖片描述
個人複習過後的理解
若有錯誤,請指出!

發佈了84 篇原創文章 · 獲贊 108 · 訪問量 7926
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章