gpt4 book ai didi

c++ - 双向链表不能正确打印值

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

当我调用方法来打印存储在我的双向链表节点中的数据时,除了空字符串和 0 之外什么都没有打印

#include <iostream>
#include <string>
using namespace std;

struct node {
int weight;
string name;
node *nextname, *nextweight;
};
node *namehead = NULL, *weighthead = NULL;

bool isEmpty()
{
if (namehead == NULL && weighthead == NULL)
return true;
else
return false;
}

void addperson(int w, string n)
{
node* newNode = new node;
node *prev, *curr = newNode;
if (isEmpty()) {
namehead = newNode;
weighthead = newNode;
}
else {
curr = prev = namehead;
if (curr->name > n) {
namehead = newNode;
newNode->nextname = curr;
}
else {
do {
if (curr->name <= n) {
prev = curr;
curr = curr->nextname;
}
else
break;
} while (curr != NULL);
prev->nextname = newNode;
newNode->nextname = curr;
}
curr = prev = weighthead;
if (curr->weight > w) {
weighthead = newNode;
newNode->nextweight = curr;
}
else {
do {
if (curr->weight <= w) {
prev = curr;
curr = curr->nextweight;
}
else
break;
} while (curr != NULL);
prev->nextweight = newNode;
newNode->nextweight = curr;
}
}
}

void printname()
{
node* curr = namehead;
do {
cout << curr->name << " - " << curr->weight << endl;
curr = curr->nextname;
} while (curr != NULL);
cout << endl;
}

void printweight()
{
node* curr = weighthead;
do {
cout << curr->name << " - " << curr->weight << endl;
curr = curr->nextweight;
} while (curr != NULL);
cout << endl;
}

int main()
{
int w = 0;
string n;
for (int i = 0; i < 15; i++) {
cout << "Enter weight: ";
cin >> w;
if (w == -1)
break;
cout << "Enter name: ";
cin >> n;
addperson(w, n);
}
printname();
printweight();
return 0;
}

预期输出(按名称):

约翰 - 220

史蒂文 - 190

泰勒 - 150

预期产量(重量):

泰勒 - 150

史蒂文 - 190

约翰 - 220

电流输出(双向):

""- 0

""- 0

""- 0

编辑通过采纳评论中关于在 add 方法中实际将值 w(权重)和 n(名称)分配给临时节点的建议,问题已得到解决。感谢您的帮助。

curr->weight=w;
curr->name=n;

最佳答案

在 add 方法中将传递的值分配给权重和名称成员到占位符节点:

curr->weight=w;
curr->name=n;

关于c++ - 双向链表不能正确打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261591/

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