网上对链表的基本操作已经有很多,我就不班门弄斧了,我就把我以前学习,理解当中最简单的模型放出来,希望对那些觉得有点难得同学。
#include <stdio.h>
#include <stdlib.h>
//静态链表
typedef struct Node
{
int data;//数据部分
struct Node *next;//指针部分
}NODE,*PNode;
int main(void)
{
//定义变量
PNode head = NULL;
NODE data1;
NODE data2;
NODE data3;
PNode p = NULL;
//对头指针进行创建操作
head = (PNode)malloc(sizeof(NODE));
if(NULL == head)
{
printf("malloc is error\n");
exit(-1);
}
//利用我们学习的关系进行操作
head->next = &data1;
data1.data = 1;
data1.next = &data2;
data2.data = 2;
data2.next = NULL;
//使用一个头指针进行截取,这个地方的设计主要是为了下次就不会指针位置不一样了
p = head->next;
while(p != NULL)
{
printf("head->data = %d\n",p->data);
p = p->next;
}
插入到尾部
//data3.data = 3;
//data2.next = &data3;
//data3.next = NULL;//加入到尾部
//插入到中间
data3.data = 3;
data1.next = &data3;
data3.next = &data2;
data2.next = NULL;
//插入到前面道理一样
p = head->next;
while(p != NULL)
{
printf("插入后 = %d\n",p->data);
p = p->next;
}
//删除
data1.next = &data2;
data2.next = NULL;
p = head->next;
while(p != NULL)
{
printf("删除后 = %d\n",p->data);
p = p->next;
}
system("pause");
return 0;
}