欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

list分別是什么意思

錢淋西2年前17瀏覽0評論

list分別是什么意思?

定義一個鏈表的節點之前說到樹,里面也有一個節點,節點是用來存數據的,不管是樹還是其他什么數據結構,最終的目的都是用來處理數據的,所以節點里面包含兩個東西,一個是指針,指針可以指向其他位置,可以是下一個節點,可以是上一個節點,還有一個東西就是數據本身,我們用一個int來代表數據,如果是很復雜的數據,我們也可以用結構體表示。typedef struct node{ int data; struct Node * next; }*p_Node; 定義一個鏈表頭結構體鏈表頭也可以是一個節點,可以認為他就是一個指針,這個指針就指向這個鏈表的表頭,所以我們還是用上面的結構體來聲明這個頭節點,再換個名字就好了。typedef struct head{ p_Node root; }; 聲明一個鏈表頭一個鏈表沒有頭是不行的,就像一個家庭沒有戶主是不行的,也像一個球隊,如果沒有隊長也是不行的,我們打正式比賽,還需要教練,但是正常一個球隊,我們必須有一個隊長,隊長非常重要,就像一個鏈表一樣,鏈表頭也是一樣的重要。/*初始化一個鏈表*/ struct head p_head; /*鏈表為空,鏈表指向下一項為空,說明鏈表為空*/ p_head.root = NULL; 我們的鏈表頭是空的,沒有指向任何地方,這樣做有沒有問題?所以執行了那幾行代碼后,會變成這個樣子。這里提一下,可能很多初學者覺得這個有沒有問題,到底是不是這樣的,我們回顧聲明和定義,什么是聲明,什么是定義呢?聲明和定義的主要區別是有沒有分配內存空間,我們使用struct head p_head; 定義了一個指針,那么這個就需要分配內存空間。向鏈表插入一個數據插入數據的時候,因為我們需要該表頭指針的位置,所以會做的判斷,正常插入一個數據到鏈表里面去的時候,先是開辟一個節點,然后操作這個節點的next指針,然后讓鏈表的尾部指向這個節點。鏈表源碼示例#include "stdio.h" #include "stdlib.h" typedef struct Node{ int data; struct Node * next; }*p_Node; typedef struct head{ p_Node root; }; /*直接做插入的動作,不給head 單獨分配內存*/ int list_insert(struct head * p_head,int data) { /*新建一個節點*/ p_Node pTemp = (p_Node)malloc(sizeof(struct Node)); /*把數據放入這個新建的節點里面*/ pTemp->data = data; pTemp->next = NULL; if(p_head->root == NULL) { p_head->root = pTemp; printf("#1list_insert:%d\n",data); return (0); }else{ /*找到鏈表的尾部節點*/ p_Node pTemp1 = p_head->root; while(pTemp1->next != NULL) { pTemp1 = pTemp1->next; } /*插入新節點*/ pTemp1->next = pTemp; printf("#2list_insert:%d\n",data); return (0); } } int list_traverse(p_Node node) { if(node == NULL) { printf("list_traverse: pHead null \n"); return (-1); } p_Node pTemp1 = node; while(pTemp1 != NULL) { printf("data:%d\n",pTemp1->data); pTemp1 = pTemp1->next; } } int main() { int i = 0; printf("main Entering ...\n"); /*初始化一個鏈表*/ struct head p_head; /*鏈表為空,鏈表指向下一項為空,說明鏈表為空*/ p_head.root = NULL; /*像鏈表插入數據*/ for(i = 0;i< 10;i++) { list_insert(&p_head,i); } /*遍歷鏈表*/ list_traverse(p_head.root); printf("main Exiting ...\n"); return (0); } 執行結果最后用上面這個圖片來表示鏈表就很簡單了,我們后面還會看到循環鏈表,我們知道鏈表的尾部是指向NULL的,如果我們把最后的那個鏈表指向head,就是循環鏈表。

循環鏈表 java,list分別是什么意思