C++ C++;链表逐字插入

C++ C++;链表逐字插入,c++,string,linked-list,char,C++,String,Linked List,Char,我的家庭作业很难将一个已经插入字符串的对象作为字符链表(如H-E-L-L-O)传递给另一个对象,然后将该列表传递给另一个对象 我可以自己将第一个单词作为列表输入(请参见函数InsertWord),但如果我想在其中插入第二个单词(Insert),我不知道如何输入。这是我的密码 我觉得这是我一直错过的简单的事情 struct Character { string symbol; Character *next; }; class Word { public: Word();

我的家庭作业很难将一个已经插入字符串的对象作为字符链表(如H-E-L-L-O)传递给另一个对象,然后将该列表传递给另一个对象

我可以自己将第一个单词作为列表输入(请参见函数InsertWord),但如果我想在其中插入第二个单词(Insert),我不知道如何输入。这是我的密码

我觉得这是我一直错过的简单的事情

struct Character {
    string symbol;
    Character *next;
};

class Word {
public:
    Word();
    Word::~Word();
    void InsertWord(const string&);
    void Insert(const Word&, int slot);
    void Remove(const string&);

private:
    Character *front;
    Character *back;
    int count;
};

void Word::InsertWord(const string& key) {          
    int ln = key.length();
    for (int n = 0; n < ln; n++) {
        if (front == 0) {
            front = new Character;
            front->symbol = key[n];
            front->next = 0;
            back = front;
        } else {
            Character *p = new Character;

            p->symbol = key[n];
            p->next = front;
            front = p;
        }
    }
}

void Word::InsertInto(const Word &key, int slot) {
    if (slot = 0 || 1) {    
        if (front == 0) {
            front->symbol = key.p; //this is where I lose it
            front->next = 0;
            back = front;
        } else {
            p->symbol = key[n];
            p->next = front;
            front = p;
        }
    }
}

int main() {
    Word A;
    Word B;
    A.InsertWord("45352");
    B.InsertWord("YZTHRH");
    A.InsertInto(B,1);

    return 0;
}
struct字符{
字符串符号;
字符*下一个;
};
类词{
公众:
单词();
Word::~Word();
void InsertWord(常量字符串&);
无效插入(常量字和int槽);
无效删除(常量字符串&);
私人:
字符*前面;
字符*背面;
整数计数;
};
void Word::InsertWord(常量字符串和键){
int ln=key.length();
对于(int n=0;n符号=键[n];
前->下一步=0;
后=前;
}否则{
字符*p=新字符;
p->symbol=键[n];
p->next=前面;
前=p;
}
}
}
void Word::InsertInto(常量Word和key,int槽){
如果(槽=0 | | 1){
如果(前==0){
front->symbol=key.p;//这就是我丢失它的地方
前->下一步=0;
后=前;
}否则{
p->symbol=键[n];
p->next=前面;
前=p;
}
}
}
int main(){
A字;
B字;
A.插入字(“45352”);
B.插入字(“YZTHRH”);
A.插入(B,1);
返回0;
}

这是错误的,原因不止一个:
if(slot=0 | | 1)
。它将slot设置为0,并始终计算为true。问题不清楚。我很难理解你在第二段中说的话。另外,为什么
字符串
对象
符号
字符
类的成员?这不应该是
struct character{char symbol;character*next;}
?1)如果我的编辑看起来像是在浏览您的代码,那么很抱歉。2) 你的界面已经很混乱了。为什么要在单词中插入一个单词?它的语义是什么?单词/字符串中的“键”是什么?单词中的“槽”是什么。3) 你的头号人物可能不是你的头号人物,正在阅读InsertWord。(您经常将“前”设置为新的字符方式)。4) 在InsertInto中,键是一个单词,没有成员p。可能是[0]键。但这段代码中还有很多奇怪的地方。