誰かが私のコードがリンクリストの最後の値を印刷しているだけなので、実際にはコーディングがうまくいかないので教えてください。リンクされたリストが正しく表示されない理由を誰かが知ることができますか? (Cプログラミング)
これはコードである:
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data; //element
struct node * next; //address of next node
} node_t;
node_t * create(int n);
void display(node_t *head);
int main(int argc, char *argv[]) {
int n=0;
node_t * HEAD=NULL;
printf("Enter number of nodes: ");
scanf("%d",&n);
HEAD=create(n);
display(HEAD);
return 0;
}
node_t * create(int n) {
node_t * head=NULL;
node_t * temp=NULL;
node_t * p=NULL;
int i;
for (i=0; i<n; i++) { // this is just reading the nodes
temp=(node_t*)malloc(sizeof(node_t));
printf("\n Enter the data for node num %d: ",i+1);
scanf("%d",&(temp->data));
temp->next=NULL;
}
if (head==NULL) { //if list is item
head = temp;
} else { // this is linking the items.
p =head;
while (p->next !=NULL) {
p=p->next;
p->next=temp;
}
}
return head;
}
void display(node_t *head) {
node_t *p = head;
while (p !=NULL) {
printf("\n%d->",p->data);
p=p->next;
}
}
これが出力される。
あなたがやりたいことは、ノード数を入力:3
ノードNUM 1のデータを入力してください:2
ノードnumのデータを入力します。2:4
ノードnumのデータを入力します3:1
の1->
あなたはこのコードを自分で作成しましたか? – coderredoc
種類、youtubeのチュートリアルの笑いに従ってください。ああ、私はmallocやもので良くはありません。どのように私はこれを修正するのですか? – Rita
'p-> next = temp;'を何回設定しますか?あなたがするとき、それぞれの 'p> next'はどうなりますか? –