我正在使用C中的链表项目,但是我在使用只有一个指针的2个结构时遇到了一些困难。
像这样的例子
struct makanan
{
char nama [50];
char nama_menu[50];
float qty;
int jumlah_bayar;
int nomor;
int harga;
struct makanan *next;
struct makanan *prev;
};
struct makanan *head;
struct makanan *bantu;
struct makanan *tail;
//menu's declaration
struct menu_makanan
{
int harga;
char nama_makanan[50];
};
由于我的老师说在这个程序中必须使用至少2个结构,我想问:
*head
中使用*bantu
,*prev
,*next
和struct menu_makanan
?答案 0 :(得分:0)
鉴于菜单(menu_makanan
)应该包含某种形状或形式的项目列表(makanan
),并且假设makanan
包含指向列表的指针,似乎合乎逻辑,你应该使用:
struct menu_makanan
{
int harga;
char nama_makanan[50];
struct makanan *head;
};
harga
成员可以保存head
指向的列表中的项目数,或者它可能是其他值(因为如果需要,可以根据需要导出长度)定)。
如果您愿意,也可以将struct makanan *tail;
成员添加到menu_makanan
。
现在全局变量head
和tail
是多余的;这通常是一件好事。尽可能避免使用全局变量。由于我不确定bantu
是做什么的,我无法判断这是否也是多余的,但它有可能是多余的,也可能是多余的。