#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,我会看到第一个。如果它为空,那么我将分配堆内存、数据和下一个指针,这样 q 现在是一个指向第一个数据的指针。如果 q 不为 NULL,那么我使用一个 temp 指针,它指向一个 q 所指向的结构节点,所以直到 temp 变为 NULL temp 转到 temp->next,然后它分配堆内存,将数据和下一个指针指向空值。
但它没有显示我的显示功能,请纠正我,以及如何在链表中使用堆栈和堆内存。