程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 循環鏈表的創建 (采用為尾插法)

循環鏈表的創建 (采用為尾插法)

編輯:C++入門知識

循環鏈表的創建和普通單項鏈表的創建沒有什麼區別,只不過在鏈表尾端的指針指向鏈表頭結點即可,沒什麼難度,直接上代碼了啊!

#include
#include
struct clist
  {
    int data;
    struct clist *next;    
  };
typedef  struct clist cnode;
typedef   cnode *clink;
clink createclist(int *array,int len)
 {
     clink  head;
     clink  before;
     clink  new_node;
     int i;
       head = ( clink )malloc( sizeof(cnode) );


        if( !head )
	    return NULL;
         head->data =array[0];
         head->next  = NULL ;
           
           before = head;
           for( i =1; idata  =array[i];
                      new_node->next = NULL;             /*將前結點指向新結點,新結點成為前結點*/
                        before->next = new_node;
            before = new_node;
                }
 /*創建環狀連接,返回鏈表起始指針*/
       new_node->next = head;
    return head;
 }
 int main()
   {
        clink head;
        clink  ptr;
        
          int list[6] = {9,7,3,4,5,6};
 	    int i = 0;


	  head = createclist(list,6);
           if( head  == NULL)
                {
		  printf("內存分配失敗!");
                   exit(1);
		}
           
		  printf("數組內容:");
                   for( i = 0; i < 6;i++)
                        printf("[%d]",list[i]);
     
         printf("\n鏈表內容為:");
           ptr = head;
             do
                {
                  printf("%d",ptr->data);
                      ptr=ptr->next;
		}while( head != ptr );    
         printf("\n");
      return 0;
   }


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved