我应该在不使用结构而仅使用数组的情况下制作链表。一切工作都像教师希望的那样进行,只是汤姆(Tom)应该位于列表的末尾,并且需要显示if语句。那是我唯一无法工作的事情。先谢谢您的帮助。

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

int main()
{
    int position[10] = {0,1,2,3,4,5,6,7,8,9};
    string names[10] = {"dick", "Harry", "Sam", "Tom"};
    int link[10] = {1, 2, 3, 99, 5, 6, 7, 8, 9, 10, };
    int stkptr = 0;

    for(int i = 0; i < 10; i++)
    {
        if(stkptr == 99)
            cout<<"You have reached the end of the list."<<endl;
        else
            stkptr = link[stkptr];
        cout << names[i] << " is in position "
             <<position[stkptr] << " and is linked to " << names[stkptr] << endl;
    }
    return 0;
}

最佳答案

您的链接设置不正确。

link[3]中的99表示列表中没有第4个节点,只有3个。

您想将99移到最后一个有效链接之后。

提示:您的列表为:0-> 1-> 2-> 99,仅显示有效节点0、1、2。

提示2:使用笔和纸绘制。

如果您喜欢此答案,请单击它旁边的复选标记。

09-20 02:18