#include<stdio.h>
#include<stdlib.h>
//初始化五个节点
struct node
{
int data;
node *next;
};
int main()
{
node *head,*p1,*p2;
int i;
head = 0; //头结点初始化
for (i = 1; i <= 5; i++)
{
p1 = (node *)malloc(sizeof(node)); //开辟新空间
p1->data = i;
if(head == 0)
{
head = p1; //头指针指向p1结点
p2 = p1; //p2也指向p1结点(为"p2->next = p1"作准备)
}
else
{
p2->next = p1; //尾结点p2连上下一个新结点p1
p2 = p1; //p2指向新结点p1(为下一个连接作准备)
}
}
p2->next = 0;
//删除数据为2的链表结点
p1 = head;
while(p1->data != 2)
{
p2 = p1;
p1 = p1->next;
}
p2->next = p1->next; //将p1->next(也就是3)连接上p2->next(p2是1,p2->next被赋值为3)
delete p1; //删除2
//输出链表数据
node *p;
p = head;
printf("链表上各结点的数据为:");
while(p != 0)
{
printf("%d ",p->data);
p = p->next;
}
printf("\n");
re
百度文库上的一个PPT:https://wenku.baidu.com/view/d6c490e0ba4cf7ec4afe04a1b0717fd5370cb24a.html