gpt4 book ai didi

c++ - 将元素添加到已排序的链表

转载 作者:行者123 更新时间:2023-11-28 08:04:51 25 4
gpt4 key购买 nike

我正在处理单链表,其中我遇到了将整数添加到排序方式的 add 函数的问题。但是我的程序一直在崩溃。我整晚都在工作,但找不到问题所在。有人对此有任何想法吗?

谢谢

template<typename T>
class SLList
{
private:

struct Node
{

Node(const T& val= T(), Node* next_ptr=NULL) : data(val), next(next_ptr) { }

// data members
T data;
Node *next;
};


template<typename T>

void SLList<T>::add(const T& val)
{
if (find(val)==false)
{
Node *curr= head;
Node* prev=NULL;
if(head->next==NULL)
{
cout<<"head";
Node *tmp=new Node(val,head->next);
head->next=tmp;
return;
}
else
{
while(curr->data < val && curr!=NULL)
{
curr=curr->next;
prev=curr;
cout<<"add";
}

Node *tmp=new Node(val, prev->next);
//head->next=tmp;
}
}
} `

最佳答案

while 退出条件被反转:

while(curr->data < val && curr!=NULL)

应该是

while( curr!=NULL && curr->data < val )

如果 currNULL,它将在检查 NULL 之前崩溃(确切地说,是 UB)。

关于c++ - 将元素添加到已排序的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com