單鏈表(循環鏈表)學習node
【參考《大話數據結構》】數據結構
涉及到循環鏈表的基本操做有以下:學習
int initList(Node **); //初始化一個單鏈表;
int createList(Node *,int); // 建立一個單鏈表;
int printList(Node *); //但因整個鏈表;
int getListlength(Node *); // 獲取鏈表的長度;spa
代碼以下:code
1 int initList(Node **head){ 2 (*head) = (Node *)malloc(sizeof(Node)); 3 (*head)->data=999; 4 (*head)->next = (*head); 5 return 1; 6 }
7 int printList(Node *CL){ 8 Node * temp=CL->next; 9 int i=1; 10 if(temp ==CL) 11 { 12 puts("鏈表爲空."); 13 return 0; 14 } 15 while(temp != CL) 16 { 17 printf("Node[%d]: data=%d\n",i,temp->data); 18 temp = temp->next; 19 i++; 20 } 21 return 1; 22 }
23 int getListlength(Node *CL){ 24 Node * temp=CL->next; 25 int i=1; 26 while(temp != CL) 27 { 28 temp = temp->next; 29 i++; 30 } 31 return i-1; 32 }
33 int createList(Node *CL, int length){ 34 int i; 35 Node * temp; 36 Node * lastnode = CL; 37 srand(time(0)); 38 for(i=0;i<length;i++){ 39 temp=(Node*)malloc(sizeof(Node)); 40 temp->data=rand()%1000; 41 printf("data[%d] = %d\n",i+1,temp->data); 42 temp->next = lastnode->next; 43 lastnode->next=temp; 44 lastnode = temp; 45 } 46 puts("鏈表建立成功."); 47 return 1; 48 }