C语言:链表,动态链表等

 
 
#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




 
 


猜你喜欢

转载自blog.csdn.net/netbar4/article/details/80747267