#include<stdio.h>
#include<stdlib.h>
#include <string.h>
struct node
{
struct node* p_node;
int data;
} ;
typedef struct node Node;
int main()
{
Node* node_temp;//temp的作用主要作为中间元素节点
Node* node_head;//头节点
Node* node_ele;//节点元素
node_temp = (Node *)malloc(sizeof(Node));
node_head=node_temp;
int i;
for(i=0;i<10;i++)
{
node_ele = (Node *)malloc(sizeof(Node)); //malloc
node_ele->data=i;
node_temp->p_node=node_ele; //temp先作为头节点 ,然后temp指向下一节点
node_temp=node_ele;
}
node_ele->p_node=node_head->p_node;
node_temp=node_head->p_node;
while(node_temp!=NULL)
{
printf("%d",node_temp->data);
node_temp=node_temp->p_node;
}
}
简单分析一下,如何用for语句快速写一个链表(头插法)。PS:因为总是记不住,so记录一下。
首先,这边主要解释一下node_temp的作用。
1)为node_temp申请内存后,将其作为头节点。node_head=node_temp;
2) 为链表中的元素node_ele申请内存后,在for语句中,依次将node_temp指向前一个node_ele;