簡體   English   中英

如何將單鏈接列表轉換為循環列表

[英]How to convert singly linked list to circular list

我正在嘗試從我的單鏈接列表中創建一個循環列表,該列表將數字按升序排列,但遺憾的是效果並不理想。 似乎正在制作列表,但由於某種原因,它沒有將輸入的數字按升序排列。 請幫忙。

list::list()
{
 head =NULL;
}

void list::insertElement(int element)
{
    //ascending order
    node *temp, *curr, *prev;
    temp = new node;
    temp->item = element;

    for(prev = head, curr = head/*value set*/; (curr !=head)&&
    (temp->item>curr ->item)/*condition*/; 
    prev = curr, curr = curr->next/*loop expression*/);

    if (prev == head)
    {
    temp-> next = head;
    head = temp;
    }
    else
    {
    temp -> next = curr;
    prev -> next = temp;
    }
  }//end of function

如果要將單鏈接列表轉換為循環鏈接列表,則只需要設置指針即可。

node *first;
temp = first;
while(temp->link != NULL)
{
   temp = temp->link;
// its traversing upto last node.
}

//這里將鏈接地址的最后一個節點分配給第一個節點;

temp->link = first;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM