代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
链表的基本操作,追加,插入,查询,遍历
作者:
汶妍
/ 发布于
2016/6/20
/
770
package dataStructure; /** * @author Administrator created on 2016-6-18 * 描述: * 实现链表的操作: * 创建链表结构 * 尾部追加 * 头部追加 * 删除节点 * 查询节点 * 插入节点 * 链表长度 * 遍历链表 */ public class CLType { /** * 嵌套类 * @author Administrator */ class Data2{ String name; String key; int age; } /** * 链表结构,成员变量为1.数据2.下一个节点的引用 */ Data2 nodeData=new Data2(); CLType nextNode; /** * 追加新数据到链表 * @param head 链表的头元素 * @param nodeData 追加数据 * @return 新链表的头元素 */ @SuppressWarnings({ "unused", "null" }) CLType CLAddEnd(CLType head,Data2 nodeData){ CLType node,htemp=null; //当实例化新的节点为空时表示申请内存失败 if((node=new CLType())==null){ System.out.println("申请内存失败"); return null; } else{ node.nodeData=nodeData; node.nextNode=null; if(head==null){ head=node; return head; } htemp=head; while(htemp!=null){ htemp=htemp.nextNode; } htemp.nextNode=node; return head; } } /** * 追加数据在链表的头部 * @param head * @param nodeData * @return */ @SuppressWarnings("unused") CLType CLAddFirst(CLType head,Data2 nodeData){ CLType node; if((node=new CLType())==null){ System.out.println("申请内存失败"); return null; }else{ //将节点的引用指向头部 node.nodeData=nodeData; node.nextNode=head; head=node; return head; } } /** * 根据字段key查询对应的元素 * @param head * @param key * @return */ CLType CLFindNode(CLType head,String key){ CLType htemp; htemp=head; //重头遍历节点,查找是否相等 while(htemp!=null){ if((htemp.nodeData.key.compareTo(key))==0){ return htemp; } htemp=htemp.nextNode; } return null; } /** * 在key节点后插入节点 * @param head 待插入链表的头节点 * @param findkey 待插入字段的key * @param nodeData 带插入元素 * @return */ @SuppressWarnings("unused") CLType CLInsertNode(CLType head,String findkey,Data2 nodeData){ CLType node,htemp; if((node=new CLType())==null){ System.out.println("申请内存失败\n"); return null; } node.nodeData=nodeData; htemp=CLFindNode(head,findkey); if(htemp!=null){ node.nextNode=htemp.nextNode; htemp.nextNode=node; }else{ System.out.println("未指定正确位置"); node=null; } return head; } /** * * @param head * @param key * @return */ int DeleteNode(CLType head,String key){ CLType htemp,node;//node存储当前节点的前一个节点 htemp=head; node=head; while(htemp!=null){ if(htemp.nodeData.key.compareTo(key)==0){ node.nextNode=htemp.nextNode; return 1;//成功删除 }else{ node=htemp; htemp=htemp.nextNode; } } return 0;//未删除; } /** * 链表的长度,即节点数 * @param head 链表的头节点 * @return */ int CLLength(CLType head){ int length=0; CLType htemp; htemp=head; //遍历链表,遍历次数=长度 while(htemp!=null){ length++; htemp=htemp.nextNode; } return length; } /** * 遍历节点元素 * @param head */ void CLAllNode(CLType head){ CLType htemp; htemp=head; while(htemp!=null){ System.out.println(htemp.nodeData.key+" "+htemp.nodeData.name+" "+htemp.nodeData.age); htemp=htemp.nextNode; } } }
试试其它关键字
链表
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
汶妍
贡献的其它代码
(
18
)
.
Map遍历的几种方法
.
对大文件进行分割
.
按天数据统计
.
SD工具类
.
最简单的无提示复制内容
.
消除图片底部间隙的方法
.
链表的基本操作,追加,插入,查询,遍历
.
Web 定时自动发邮件
.
实体类自动生成
.
SqlServer修改表的所有者为“dbo”
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3