如何在没有头/尾指针的情况下将多个节点添加到C中的链表?

蓝天

我有一个带有患者列表的多层链接列表,每个患者列表都指向一个包含患者的链接列表,每个患者都指向一个医生的链接列表。我试图添加多个医生,但是当我尝试显示医生时,我得到一个无限循环,好像没有指向NULL的下一个指针一样。如果只有一位医生,那么一切都会很好。

我尝试了多种方法,例如将旧节点设置为临时指针,然后将新节点设置为指向临时指针。我的患者列表链接列表和患者链接列表工作100%。

struct doctor {
char name[MAX_NAME];
struct doctor *next;
};
void addDoctor(char* patientNameInput, char* doctorNameInput)
{
struct patientList* tempList = list;   // work on a copy of 'list'
int i = 0;

struct doctor* newDoctorNode = NULL;
newDoctorNode = (struct doctor*) malloc(sizeof(struct doctor));
struct doctor* tmp = NULL;

while (tempList != NULL)
{
    while (tempList->patient->name[i] == patientNameInput[i])
    {
        if (tempList->patient->name[i] == '\0')
        {
            tempList->patient->doctors = newDoctorNode;
            newDoctorNode->next = NULL;

        for (int i = 0; i < 30; i++)
        tempList->patient->doctors->name[i] = doctorNameInput[i];
        }
        i++;
    }
    tempList = tempList->next;
}

}

该功能搜索患者姓名和相应的患者列表链接列表。找到后,它将为相应的患者添加医生节点。如果我包括旧的临时指针尝试并显示该函数,则将得到一个无限循环。我希望输出结果能够显示1位以上的医生,并且没有错误。

汤姆·卡兹斯

更改以下内容:

        tempList->patient->doctors = newDoctorNode;
        newDoctorNode->next = NULL;

至:

        newDoctorNode->next = tempList->patient->doctors;
        tempList->patient->doctors = newDoctorNode;

这会将新的医生节点添加到现有医生列表的前面。如果您想将其添加到末尾,则需要遍历列表以找到末尾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有HttpClientFactory的情况下将多个HttpMessageHandler添加到HttpClient

如何在没有jQuery的情况下将ahref添加到li中?

如何在没有参考的情况下将元素列表添加到列表中?

如何在没有IAppBuilder的情况下将中间件添加到Owin

如何在没有发送者的情况下将Target添加到UIButton

如何在没有提交的情况下将项目从 Github 添加到 Github?

如何在没有多余空格的情况下将mailto添加到句子?

如何在没有FXML的情况下将CSS文件添加到JavaFX场景?

如何在Reducer中没有任何ID的情况下将数据添加到redux状态数组?

如何在没有类别控制器的情况下将类别添加到Rails中的帖子

如何在不使用JLabel的情况下将背景图像添加到没有面板的JFrame中?

如何在Python中没有标题的情况下将图例添加到CSV数据图中?

如何在不使用for循环的情况下将数据从ByteArray添加到链表?

如何在没有多个的情况下添加到已创建的 StackLayout:Children.Add?

如何在程序不返回InvocationTargetException的情况下将节点添加到GridPane?

在实体框架中,如何在没有枚举所有可能的DbSet的switch语句的情况下将通用实体添加到其对应的DbSet中?

如何在没有完整路径的情况下将值添加到JSON数组?

如何在没有互联网的情况下使用按钮将图像项添加到 RecyclerView?

如何在没有gemspec的情况下使用Gemfile将'lib'添加到LOAD_PATH?

如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

如何在没有npm的cordova cli的情况下将外部/外部插件添加到pgb?

如何在没有 .xml 和资源的情况下将字符串添加到微调器

如何在没有'new'的情况下将新对象实例添加到std :: list

如何在没有3party库的情况下将SPNEGO身份验证添加到servlet

如何在没有自定义类的情况下将 UILabel 添加到 UICollectionViewCell?

如何在没有用户提示UWP C#的情况下添加到日历

如何在没有转换错误的情况下添加到新的 ArrayList?

如何在没有usermod的情况下将用户添加到组?

如何在没有属性构造函数的情况下将值添加到动态添加到属性的属性(Reflection.Emit)