-4
我學習數據結構模塊,我已經從書上寫我的鏈接列表的代碼。當我運行代碼時,它只是追加一個節點,並在調用displayNode函數時僅顯示第一個節點的值。 請幫我解決一下我的代碼?在C++中我的鏈接列表的代碼只有一個附加價值
下面是代碼: class.h文件
NumberList::NumberList(){
head=nullptr;
}
void NumberList::appendNode(double num){
ListNode *newNode;
ListNode *nodeptr;
newNode=new ListNode;
newNode->value=num;
newNode->next=nullptr;
if(!head){
head=newNode;
}
else{
nodeptr=head;
while(nodeptr->next){
nodeptr=nodeptr->next;
nodeptr->next=newNode;
}
}
}
void NumberList::insertNode(double num){
ListNode *newNode;
ListNode *nodeptr;
ListNode *previousNode;
newNode=new ListNode;
newNode->value=num;
if(!head){
head=newNode;
newNode->next=nullptr;
}
else{
nodeptr=head;
previousNode=nullptr;
while(nodeptr!=nullptr&&nodeptr->value<num){
previousNode=nodeptr;
nodeptr=nodeptr->next;
}
if(previousNode==NULL){
previousNode=newNode;
newNode->next=nodeptr;
}
else{
previousNode=newNode;
newNode->next=nodeptr;
}
}
}
void NumberList::DeleteNode(double num){
ListNode *nodeptr;
ListNode *previousNode = nullptr;
if(!head){
return;
}
if(head->value==num){
nodeptr=head->next;
delete head;
head=nodeptr;
}
else{
nodeptr=head;
while(nodeptr!=NULL&&nodeptr->value!=num){
previousNode=nodeptr;
nodeptr=nodeptr->next;
}
if(nodeptr){
previousNode->next=nodeptr->next;
delete nodeptr;
}
}
}
void NumberList::DisplayNode()const{
ListNode *nodeptr;
nodeptr=head;
while(nodeptr){
cout<<nodeptr->value<<endl;
nodeptr=nodeptr->next;
}
}
NumberList::~NumberList(){}
主要功能:
int main(int argc, const char * argv[]) {
NumberList list;
list.appendNode(0.9);
list.appendNode(13.9);
list.DisplayNode();
return 0;
}
通過您的代碼行與調試器步進當行什麼你有沒有注意到? – user0042
displayNode的輸出只是第一個值。 –