用C語言實現鏈表,附代碼註釋(簡潔版)

用C語言實現鏈表,附代碼註釋

這裏給已經在學C和數據結構的小夥伴提供一些彈藥支持,雖然不知道管不管用,在這裏大佬就勿擾了吧!哈哈!

在實現一個簡單的鏈表前需要用到哪些知識點呢?

  • C語言基礎知識,比如要用到的結構體、指針、函數、運算
  • 一點數據結構的知識,在學習數據結構也能看到鏈表的身影,我們這裏實現的是單項鍊表
  • 有手,有腦

現在上代碼:

# include<stdio.h>
# include<malloc.h>

//創造鏈表 
//定義一個節點類型
typedef struct node{
	int data;
	char name[10];
	struct node *next;
}noDe,* pnoDe; 

// 輸入函數 
pnoDe funkin(void){
 	pnoDe pHead = (pnoDe)malloc(sizeof(noDe));	//定義頭指針和尾指針分別指向頭和尾節點 
 	pnoDe ptail = pHead;
	ptail->next = NULL;
	 
	int n,score;	//有效節點的數量  
	char name[10];	
	printf("please funkin a number:");
	scanf("%d",&n);			 
 
// 連續輸入學生及成績數據 
	for(int i=0;i<n;i++){
		pnoDe pNew = (pnoDe)malloc(sizeof(noDe));
		printf("please scanf the score of number %d :",i+1);
		scanf("%d %s",&(pNew->data),pNew->name);
		/*核心代碼*/
		ptail->next = pNew;	   //讓尾節點指針指向新節點 
		ptail = pNew;	//讓尾指針指向新節點 ,並移動到下一個節點 
		ptail->next = NULL;	//讓新節點指針域爲空 
	}	
	
	return pHead;
} 

// 輸出函數 
void out(pnoDe pHead){
	int k = 1;
	pnoDe p = pHead->next;
	while(p != NULL){
		printf("\nfunkout number %d: ",k);
		printf("score= %d\nname= %s\n",p->data,p->name);
		p = p->next;
		k++;
	}
	
	return;
}

int main(void){
	pnoDe pHead = NULL;
	pHead = funkin();
	out(pHead);
	return 0;	
} 





代碼並不難懂,大概就是先輸入需要創建的節點數或有效數據個數,之後創建了一個會構造鏈表的函數,並返回頭指針。這個時候鏈表其實已經創建好了,並且已經放入了數據。之後,輸出函數out()會輸出數據。ok,就是這麼簡單!覺得可以就點贊加關注,博主會定期更新哦!哈!最後附上個人博客鏈接:碼里奧博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章