#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
void insert( struct node *q,int num)
{
struct node *temp;
if( q == NULL)
{
q = (struct node*)malloc(sizeof(struct node));
q->data = num;
q->next = NULL;
}
else
{
temp = q;
while( temp != NULL)
{
temp = temp->next;
}
temp = (struct node*)malloc(sizeof(struct node));
temp->data = num;
temp->next = NULL;
}
}
void display(struct node *q)
{
struct node *temp;
temp = q;
while(temp != NULL)
{
printf("%d",temp->data);
temp = temp->next;
}
}
int main()
{
struct node *a;
a = NULL;
insert( a,13);
insert( a,13);
display(a);
return 0;
}
insert
関数には、q
NULL に初期化された構造体ノードへのポインターがあります。
ここで、q が NULL であるかどうかにかかわらず、最初に表示されます。null の場合、ヒープ メモリ、データ、および次のポインターを割り当てています。このようにして、q は最初のデータを逆参照するポインターになります。q が NULL でない場合、q が指す構造体ノードを指す一時ポインターを取得するため、temp が NULL になるまで、temp は temp->next に移動し、ヒープ メモリを割り当て、データと次のポインターを配置しますヌル。
しかし、私の表示機能では何も表示されません。これと、リンクされたリストでスタックとヒープメモリがどのように使用されているかを修正してください。