单链表的基本操作

python实现单链表的基本操作 一、单链表 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。它的每个节点包含两个域,一... 阅读详情

1、创建

#include<iostream>
using namespace std;

struct node
{
	int data;
	node* next;
};

node* create(int array[],int n)
{
	node* head=new node;
	head->next=NULL; //别忘记置空!! 
	node* pre=head;
	node* p;
	
	for(int i=0;i<n;i++)
	{
		p=new node;
		p->data=array[i];
		p->next=NULL;
		pre->next=p;
		pre=p;
	}
	return head; 
}

int main()
{
	int array[5]={1,2,3,4,5};
	node* l=create(array,5);
	l=l->next;
	while(l!=NULL)
	{
		cout<<l->data<<" ";
		l=l->next;
	}
	return 0;
}

2、插入

void insert(node* head,int pos,int x)
{
	node* p=head;
	for(int i=0;i<pos-1;i++)
	{
		p=p->next;
	}
	node* q=new node;
	q->data=x;
	q->next=p->next;
	p->next=q;	
}

3、查找

int search(node* head,int x)
{
	int count=0;
	node* p=head->next;
	while(p!=NULL)
	{
		if(p->data==x) count++;
		p=p->next; 
	}
	return count;
}

4、删除

void del(node* head,int x)
{
	node* pre=head;
	node* p=head->next;
	while(p!=NULL)
	{
		if(p->data==x) 
		{
			pre->next=p->next;
			delete(p);
			p=pre->next;  //注意p的指向的变动!! 
		}
		else  //非此即彼的关系 
		{
			pre=p;
			p=p->next;
		}		
	}	
}

 

单链表基本操作详解 #  单链表基本操作 文中提到的内容的链接一并列在这里: 顺序表:http://blog.youkuaiyun.com/bitboss/article/details/51559175 冒泡排序:http://blog.youkuaiyun.com/bitboss/article/details/51559034 选择排序:http://blog.youkuaiyun.com/bitboss/ 阅读详情

相关推荐

【头歌】单链表的基本操作

由于单链表中每个结点的存储地址是存放在其前趋结点的指针域中的,而第一个结点无前趋,头指针L指向第一个结点,对于整个单链表的读取必须从头指针开始,同时,由于单链表中最后一个结点的指针域为“空”(NULL),没有直接后继元素,对于整个单链表的读取必须在尾结点结束。要在带头结点的单链表L中删除第i个结点,则同样要先找到第i-1个结点,使p指向第i-1个结点,使q指向第i个结点,然后令第i-1个结点的指针域指向第i+1个结点,而后删除q指向的第i个结点并释放结点空间。= NULL时,才能进行删除结点的操作。

qq_39977056的博客 1万+

单链表插入educoder

/*使用尾插法建立单链表,并返回指向单链表的头结点的指针*/ Node *CreateAtTail(DataType a[],int n) { int i; Node *first,*s,*r; first=InitList(); //初始化单链表 r=first; for(i=0;i<n;i++) { s=(Node *)malloc(sizeof(Node)); s->data=a[i]; r->next=s;

打码少年风萧的博客 1797

使用kali对局域网内的主机进行远程控制

输入命令:hydra -l administrator -P/usr/share/woerdlists/rockyou.txt 192.168.100.241 smb -V。账户(adminitrator)密码:123456 【一般账户都是我们知晓了,如果不知道账户进行破解那几乎不太可能,密码如果设置的特别复杂无规律也是特别难破解的】【-r:扫描整个网段 后面就是设置 192.168.241.100/24的网络地址段 为 192.168.241.0/24 0和/24之间不要空格】

2301_77599769的博客 2281

Java编程:链表

Java编程:单链表

KaiSarH 632

别再混淆了!5分钟搞懂机器人导纳控制与阻抗控制的本质区别(附Simulink对比仿真)

本文深入解析机器人柔顺控制中的导纳控制与阻抗控制的本质区别,通过信号流方向、架构对比和应用场景三个关键视角进行详细阐述。文章还提供Simulink对比仿真案例,帮助读者快速理解两种控制策略的差异及其适用场景,特别适合机器人控制领域的研究者和工程师参考。

weixin_42543046的博客 606

手机耳机麦克风(ECM)电路设计实战:从差分走线到射频干扰滤波,一个电阻引发的灵敏度问题

本文深入探讨了手机耳机麦克风(ECM)电路设计中的关键问题,从差分走线到射频干扰滤波,特别关注了一个电阻引发的灵敏度问题。通过实际案例分析,详细解析了ECM麦克风工作原理、偏置电阻选型、差分信号传输设计以及射频干扰抑制策略,为工程师提供了实用的设计指南和优化建议。

weixin_42563415的博客 244

C语言实现单链表的基本操作

王道c语言版数据结构--实现单链表的基本操作

weixin_46625488的博客 9706

2024年最新双摄像头的实时视频拼接及目标跟踪(一)_监控视频拼接实时(1),网络相关+C C++三方库的源码分析+数据结构与算法

opencv中采用了SURF,ORB进行特征点提取,如果装的是opencv2.0版本,则可以直接用SURF,如果是3.0版本,则需要下载相应的contrib库进行安装。原理不赘述,给出其实验结果对比和分析,原始图像1SURF特征点提取网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以添加戳这里获取一个人可以走的很快,但一群人才能走的更远!

m0_51437227的博客 937

数据结构实验二——单链表的基本操作

单链表的基本操作一、实验内容二、基本要求三、支撑的课程目标四、实验过程 一、实验内容 编程实现单链表的基本操作:建立单链表,查找单链表,插入单链表,删除单链表; 采用单链表结构编程实现:两个有序单链表的归并运算。 二、基本要求 掌握线性表的链式存储结构; 掌握单链表及其基本操作的实现。 三、支撑的课程目标 本实验项目可以支撑“目标1. 理解数据结构的基本概念、计算机内部数据对象的表示和特性。掌握线性表、树、图等数据逻辑结构、存储结构及其差异以及各种操作的实现。 本实验通过验证方式引导学

weiyuexin的博客 4822

来!简单了解一下计算机发展史!

​ 1936年,英国数学家阿兰・麦席森・图灵提出了一种抽象的计算模型——图灵机( Turing machine)。图灵机,又称图灵计算机,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。​ 图灵机是一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。

m0_57290404的博客 2909

Godot 4.x 实现 JRPG 回合制战斗系统:架构、状态机与实战优化

游戏开发中,状态机是管理复杂逻辑流转的核心设计模式,尤其在回合制战斗这类事件驱动的场景中。其原理是通过定义有限的状态和明确的转移条件,来控制系统在不同阶段的行为,从而实现清晰、可维护的流程控制。这项技术的价值在于能够将杂乱的条件判断代码结构化,降低模块间的耦合度,提升代码的可读性和可扩展性。在游戏开发领域,状态机广泛应用于角色AI、UI流程、战斗系统等场景。本文以Godot引擎为例,深入探讨如何运用节点与信号驱动架构,构建一个健壮的JRPG(日式角色扮演游戏)回合制战斗系统。内容涵盖从核心的**状态机**设

weixin_33749242的博客 500

【数据结构】C语言实现单链表的基本操作

【数据结构】第二章——线性表(6) 详细介绍了通过C语言实现单链表的基本操作……

蒙奇D索大的博客 2664

杰理JL701N V142的SDK实现双备份自定义OTA教程和代码分享

摘要 本文档详细介绍了基于JL701N SDK的UART OTA升级功能开发方案。该方案采用双备份(Dual Bank)机制,通过串口实现安全可靠的固件远程更新。核心特性包括:1) 双备份升级机制确保升级失败可回滚;2) CRC-16/XMODEM校验保障数据完整性;3) 灵活的传输控制,支持自定义波特率和数据包大小。文档提供了完整的系统架构、API接口说明、通信协议规范以及移植指南,适用于生产烧录、现场升级等多种场景。配套Python升级工具简化了升级流程,使开发人员能够快速实现固件更新功能。

qq_42014563的博客 278

单链表的基本操作以及头插法和尾插法建立单链表

本文主要关于单链表的基本操作,创建单链表,插入节点,删除节点,查找结点,清空节点,销毁节点,以及使用头插法和尾插法建立单链表

2201_75919511的博客 1376

【一 扣子客户案例合集】【 1.1 抖音电商:通过扣子智能体重塑电商服务新体验】

**摘要:**抖音电商借助扣子(Coze)智能体平台重塑客服体验,通过无代码开发、多模态交互和跨平台发布等功能,解决了传统客服高峰期压力大、成本高及响应机械等痛点。智能体采用直接面客与人工监管结合模式,实现高效精准服务,并通过解构流程、模块化设计优化系统架构。其技术优势包括零配置学习、意图识别、情绪感知等,实际应用中显著提升客服效率300%以上,改善用户体验。未来将进一步拓展至商品推荐、直播互动等场景,推动电商服务智能化升级。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1571

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

数据结构之单链表的基本操作

#include<stdio.h> #include<string.h> #include<stdlib.h> typedef int ElemType; //单链表的结构 typedef struct LNode{ ElemType data; //结点的数据 struct LNode *next;//下一结点的地址,指向下一个结点 }L...

Gloming__zxy的博客 413

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: codeup 1918: 简单计算器
下一篇: pat a1032 Sharing ------共有后缀
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值