【发布时间】:2020-07-01 06:20:25
【问题描述】:
我目前正在为一个学校项目开发一个程序,它显示一个包含以下选项的菜单: 1-添加车辆; 2-更改有关车辆的信息 3-消除车辆; 4-列表列表。
这些天我可能会发一些垃圾邮件,因为这是一个价值 50% 的项目,而我离主要目标还很远
反正1和3都做完了。 4远未完成。 但我需要你对选项 2 兄弟的帮助。 当我写这篇文章时,我意识到我正在以二叉树模式开发这个程序,而我认为我应该使用链表
我现在要给你一些代码: 这不需要介绍
typedef struct Caravana
{
char matricula[20];
char marca[40];
char modelo[45];
char formato[20];
int ano;
int max_lugares;
int area;
int preco;
}CARAVANA;
然后,我们有一个在树上插入元素的函数
void inserirCaravana(NODO **raiz, CARAVANA newInfo)
{
if (*raiz==NULL)
{
(*raiz)= criaElem(newInfo);
return;
}
if (newInfo.matricula> (*raiz)->info.matricula)
{
inserirCaravana(&(*raiz)->direita, newInfo);
}
else
{
inserirCaravana(&(*raiz)->esquerda, newInfo);
}
之后我们保留空间并完成元素
NODO *criaElem(CARAVANA newInfo)
{
NODO *novo= NULL;
novo=(NODO *) calloc(1,sizeof(NODO));
if (novo==NULL)
{
printf("<<<<<Out of memory>>>>>\n");
}
else
{
novo->info=newInfo;
novo->direita=NULL;
novo->esquerda=NULL;
}
return novo;
}
我正在考虑做一个 printf 来询问车牌,使用 strcmp,如果它没有找到它就可以返回,如果它找到我必须做正确的事情?强>
这就是你介入兄弟的地方,非常感谢你
【问题讨论】:
-
很难回答,但是如果您知道如何删除和添加,可以通过删除以前的版本并添加新版本来完成更新。使用 malloc 代替 calloc,不要转换 calloc 或 malloc 的结果。
标签: c function data-structures