#include "PersonList.h"
#include <iostream>
#include <string>
using namespace std;
PersonList::PersonList()
{
head=NULL; //Head is a PersonRec*
}
struct PersonRec
{
string aName;
int aBribe;
PersonRec* link;
};
void PersonList::AddToList()
{
//string a;
//int b;
PersonRec* p;
p=new PersonRec;
p->link=NULL;
cout << "\nEnter the person's name: ";
cin >> p->aName;
cout<< "\nEnter the person's contribution: ";
cin >> p->aBribe;
if(head==NULL)
{
cout<<1<<endl;
head=p;
}
else if(head!=NULL) //The problem is in here.
{
PersonRec *currPtr=head;
bool x=true;
while(x==true)
{
currPtr=currPtr->link;
if(currPtr==NULL)
{
currPtr=p;
x=false;
}
}
}
}
這是應該輸入一個名稱和一個賄賂成通過動態存儲器分配的鏈接列表,並且輸出根據請求的結果的程序(I只放置在輸入函數在這裏,因爲它是唯一有問題的)。第一個元素輸入和輸出很好,但如果我嘗試輸入第二個元素,則不會輸出。該程序編譯,但是因爲在第一個節點之後添加一個節點對於所有節點是不同的,所以問題必須是我已經評論爲問題的部分。任何幫助,將不勝感激。這是作業,是的,所以任何提示將不勝感激。與動態存儲器分配鏈表程序
請添加用於輸出列表內容的代碼。是什麼讓你認爲問題不在那裏? – 2013-04-20 21:40:17
問題出在那裏,因爲我只是修復它,抱歉沒有更快發佈。 – user2167980 2013-04-20 21:52:40
要添加到列表中,您需要設置'tail-> link = newElement',對吧?但是你似乎沒有那樣做,那麼它是如何添加到列表中的呢? – balki 2013-04-20 21:55:31