如何在C语言中显示链表
我是c语言链表的初学者。首先,为了理解这个概念,我尝试制作一个简单的链表。 代码如下:如何在C语言中显示链表,c,linked-list,C,Linked List,我是c语言链表的初学者。首先,为了理解这个概念,我尝试制作一个简单的链表。 代码如下: #include <stdlib.h> #include <stdio.h> typedef struct Element ELEMENT; struct Element { float price; int nb_products; ELEMENT *next=NULL; }; ELEMENT* add_list ( ELEMENT * p_head)
#include <stdlib.h>
#include <stdio.h>
typedef struct Element ELEMENT;
struct Element
{
float price;
int nb_products;
ELEMENT *next=NULL;
};
ELEMENT* add_list ( ELEMENT * p_head)
{
ELEMENT* my_new=NULL;
if (!( my_new = (ELEMENT*) malloc (sizeof(ELEMENT))))
{
printf ("Pb d'allocation dans %s\n",__func__);
exit (EXIT_FAILURE);
}
my_new->next = p_head;
return my_new;
}
void liste_display(ELEMENT *p_head)
{
while(p_head != NULL)
{
printf("%d",p_head->nb_products);
p_head = p_head->next;
}
}
int main()
{
ELEMENT *head = NULL;
ELEMENT *elem;
elem = add_list(head);
elem->nb_products = 34;
elem->price = 10.95;
liste_display ( head );
return 0;
}
我可以在元素列表中创建一个新元素,但我不知道如何在代码中显示它,因为只有一个元素要显示
正如你所看到的,我有一个错误EXC_BAD_ACCESS,所以我想我不知道如何操作链表
在我的项目后面,我将需要,如果有可能使链表的链表像一种二维数组,但在列表中,我没有找到如何使这一点。例如,如果我的元素列表中的一个元素必须有另一种结构的列表,我应该在元素结构中声明一个*头指针吗
提前谢谢 编辑:
while(p_tete != NULL){
printf("%d",p_tete->produit_nb);
p_tete = p_tete->suivant;
}
由于链表是一种数据结构,其中的元素一个接一个地链接在一起,因此为了打印整个列表,必须遍历整个列表并逐个打印元素,直到到达空指针 应该是
while(head!=NULL)
{
printf("%d",head->data);
head=head->next;
}
尝试使用临时元素变量并将p_头指定给temp
在大多数语言中,列表在[]或{}内一次显示一个元素,并用逗号分隔。要做到这一点,你需要一次遍历一个节点。旁注:我强烈建议你用英语编写代码,特别是如果你需要从StackOverflow或其他法语不流利的人那里获得帮助的话。这将帮助我们更容易地理解您的代码,从而更快地发现任何问题。您应该将代码作为文本发布在此处,而不是作为屏幕截图的链接。请不要尝试即时翻译代码。慢慢来,确保发布的程序编译并产生原始程序所产生的错误。这不会显示最后一个元素。是的,它必须是while ptete或while ptete!=无效的
void liste_display(ELEMENT **p_head)
{
temp = (ELEMENT*) malloc (sizeof(ELEMENT));
temp = *p_head;
while(temp != NULL)
{
printf("%d",temp->nb_products);
temp= temp->next;
}
}