gpt4 book ai didi

c - 在链表的头部插入一个新元素并打印元素值

转载 作者:行者123 更新时间:2023-11-30 17:31:53 25 4
gpt4 key购买 nike

我正在尝试用 C 语言创建一个列表,在头部插入新元素,然后我想打印元素的值。

这是我编写的代码:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

struct clients
{
int stato; //stato del giocatore : 0 libero 1 occupato
struct clients *next; //puntatore all'elemento successivo della lista
};

typedef struct clients player; /* per comodita' */


// funzione che inserisce elem in testa alla lista

void inserisci(player *elemento, player *lista)
{

elemento->next=lista;
lista=elemento;
}

// funzione che visualizza la lista

void visualizza(player *lista)
{

player *p = lista; //creo puntatore alla lista passatagli
while ( p != 0)
{
printf("valore %d \n",p->stato);
p=p->next;
}

}

// main principale
int main(void)
{
player *first = NULL; /* puntatore al primo elemento della lista */
player *pippo = NULL;
int i;
printf("inizio inserimento \n");
for (i=1;i<=10;i++)
{
pippo=malloc(sizeof(player));
pippo->stato=i;
pippo->next=NULL;
inserisci(pippo,first);
pippo = NULL;

}
printf("fine inserimento. Ora stampa ! \n");

visualizza(first);

return 0;
}

但是当我运行代码时,它不会打印列表元素的值:/

最佳答案

您正在分配给局部变量:

void inserisci(player *elemento, player *lista)
{
elemento->next=lista;
lista=elemento; /* Here, the local variable is affected */
}

更改为:

void inserisci(player *elemento, player **lista)
{
elemento->next=*lista;
*lista=elemento; /* The passed variable is affected */
}

main中:

inserisci(pippo,&first);

关于c - 在链表的头部插入一个新元素并打印元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24426138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com