我正试图从我的单链表中创建一个循环列表,将数字按升序排列,但遗憾的是它并没有如此好。它似乎正在制作列表,但由于某种原因,它并没有按照升序输入数字。请帮忙。
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
答案 0 :(得分:1)
如果要将单链表转换为循环链表,只需设置这样的指针即可。
node *first;
temp = first;
while(temp->link != NULL)
{
temp = temp->link;
// its traversing upto last node.
}
//这里将链接地址的最后一个节点分配给第一个节点;
temp->link = first;