C/C++学习笔记
怎样建立一个简单的链表
单头链表源程序:
#include<stdio.h>
#include<stdlib.h>
typedef struct Node//节点定义
{
int data;
struct Node* next;
}*p_node;
typedef struct head //表头定义
{
p_node root;
};
void line_insert(struct head* p_head,int data)
{
p_node Ptemp = (p_node)malloc(sizeof(struct Node));
Ptemp->data = data;
Ptemp->next = NULL;
if (p_head->root == NULL)//表头处理
{
p_head->root = Ptemp;
printf("Insert:%d\n", data);
return 0;
}
else //非表头处理
{
p_node Ptemp1 = p_head->root;
while (Ptemp1->next != NULL)
{
Ptemp1 = Ptemp1->next;
}
Ptemp1->next = Ptemp;
printf("Insert:%d\n", data);
return 0;
}
}
void list_traverse(p_node node) //循坏调用正序输出
{
if (!node)
return;
printf("%d ", node->data);
list_traverse(node->next);
}
int main(void)
{
int i = 0;
printf("main Entering ...\n");
struct head p_head;
p_head.root = NULL;
for (i = 0; i < 10; i++)
{
line_insert(&p_head.root,i);
}
list_traverse(p_head.root);
return 0;
}