IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 链表-单链表 -> 正文阅读

[数据结构与算法]链表-单链表

#include<stdio.h>
#include<stdlib.h>

typedef struct node
{
	//数据域
	int data;
	//指针域
	struct node *naxt;
}NODE, *PNODE;

//增加
void insert(PNODE head,int data)//增加
{
	//初始化;申请一个节点空间
	PNODE p = (PNODE)malloc(sizeof(NODE));
	p->data = data;
	p->naxt = NULL;
#if 0
	//头插法:有三个节点 A,B(要插入的B节点),C;head->A->C->NULL;
	p->naxt = head->naxt;//先让指针p记录C节点的地址;
	head->naxt = p;//在修改A的地址指向p;
#else
	//尾插法:插入尾部节点,有三个节点 A,B,C(要插入的B节点);head->A->B->NULL;
	PNODE temp;//设置一个tmep临时指针;
	temp = head;//设置到节点开头
	while (temp->naxt != NULL)//当temp->naxt等于0时结束
	{
		temp = temp->naxt;//找到最后一个节点,用temp指向最后的节点
	}
	temp->naxt = p;//给最后的指针指向空;
#endif
}
//查找
void findNODE(PNODE head, int data)//查找
{
	PNODE temp = head->naxt;//因为第一个节点没有数据,temp从第二个节点开始查找
	while(temp!= NULL)//查找
	{
		if (temp->data==data)//判断查找是否匹配
		{
			//数据匹配语句
		}
		temp = temp->naxt;
	}
	//第二种查找方法
	//PNODE temp = head;
	//while (temp->naxt != NULL)
	//{
	//	if (temp->naxt->data=data)//从第二个寻找到匹配的data插入
	//	{
	//		//数据匹配语句
	//	}
	//	temp = temp->naxt;
	//}
}
//修改
void changeNODE(PNODE head, int data, int newdata)//修改
{
	//查找
	PNODE temp = head->naxt;//因为第一个节点没有数据,temp从第二个节点开始查找
	while (temp != NULL)
	{
		if (temp->data == data)//判断查找是否匹配
		{
			//数据匹配语句
			temp->data = newdata;
		}
		temp = temp->naxt;
	}
}
//删除
void deleNODE(PNODE head, int data)//删除:有三个节点 A,B,C(要删除的B节点);
{
	PNODE p= head;
	while (p->naxt != NULL)
	{
		if (p->naxt->data  == data )
		{
			PNODE temp = p->naxt ;
			p->naxt = p->naxt->naxt;
			free(temp);
		}
		p = p->naxt;
	}
}
//释放链表
void deleAllNODE(PNODE head)//释放链表
{
	PNODE temp;//临时指针
	while (head != NULL)
	{
		//只要head不等于NULL,就一直释放
		temp = head;//while循环赋值指针节点
		head = head->naxt;//指向下一个节点地址
		free(temp);//释放节点
	}
}
//打印
void ptint(PNODE head)//打印
{
	PNODE temp = head->naxt;
	while (temp!=NULL)
	{
		printf("%d->", temp->data);
		temp = temp->naxt;
	}
	printf("NULL\n");
}


int main()//主程序
{
	//初始化一个head头指针
	//第一个节点可以用来存数据,但是为了方便,一般不存。
	PNODE head;
	head = (PNODE)malloc(sizeof(NODE));
	head->naxt = NULL;

	for (int i = 0; i < 10; i++)
	{
		insert(head, i);
	}
	//changeNODE(head, 3, 11);
	deleNODE(head, 2);
	ptint(head);
	deleAllNODE(head);
	system("pause");
	return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章           查看所有文章
加:2021-10-11 17:45:19  更:2021-10-11 17:48:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:36:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码