我試圖在雙向鏈表的末尾插入一個值,我成功地插入了頭或第一個節點的值,但第二個值沒有被插入最後在雙向鏈表中追加或插入
這裏的問題是,在進入第二個值
class d_list
{
private:
struct node
{
double data;
node *next;
node *previous;
};
node *first;
node *last ;
public:
d_list(void)
{
first = nullptr;
last = nullptr;
};
void append(double);
};
void d_list::append(double num)
{
node *ptr;
node *toinsert;
if(!first)
{
first = new node;
first->previous= nullptr;
first->data = num;
last= new node;
first->next= last->previous;
last->previous = first->next;
last->next= nullptr;
}
else
{
if(last->next == nullptr)
{
ptr = new node;
ptr->next =last->previous;
ptr->data=num;
last->previous = ptr->next ;
}
last->next= nullptr;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
d_list aa;
cout<<"going to append first"<<endl;
aa.append(44);
cout<<"going to append second"<<endl;
aa.append(50.5);
return 0;
}
有什麼症狀?當你在調試器中運行你的程序時,你學到了什麼? – 2012-02-26 14:22:20
請停止在所有標題末尾寫上「,C++」。我們知道它是C++,因爲它有'C++'標籤。 – 2012-02-26 14:24:00
有幾次當我做更改時,它顯示訪問違規錯誤,如果發了一條推文並且它被根除了,那麼我在head的下一個節點數據中看不到vlaue,在最後一個節點的前一個也沒有值 – 2012-02-26 14:24:23