前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >链表操作 顶

链表操作 顶

作者头像
算法之名
发布2019-08-20 10:48:35
4290
发布2019-08-20 10:48:35
举报
文章被收录于专栏:算法之名算法之名

/**

* Created by Administrator on 2018-01-28.

*/

public class LinkedList {

public CLType CLAddEnd(CLType head,Data2 nodeData) {

CLType node,htemp;

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.nextNode != null) {

htemp = htemp.nextNode;

}

htemp.nextNode = node;

return head;

}

}

public 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;

}

}

public CLType CLFindNode(CLType head,String key) {

CLType htemp = head;

while (htemp != null) {

if(htemp.nodeData.getKey().equals(key)) {

return htemp;

}

htemp = htemp.nextNode;

}

return null;

}

public CLType CLInsertNode(CLType head,String findkey,Data2 nodeData) {

CLType node;

if((node = new CLType()) == null) {

System.out.println("申请内存失败");

return null;

}else {

node.nodeData = nodeData;

}

CLType htemp = head;

while (htemp != null) {

if(htemp.nodeData.getKey().equals(findkey)) {

node.nextNode = htemp.nextNode;

htemp.nextNode = node;

return head;

}

htemp = htemp.nextNode;

}

if(htemp == null)

System.out.println("未找到正确的插入位置!");

return head;

}

public CLType CLDeleteNode(CLType head,String key) {

CLType htemp,node;

htemp = head;

node = head;

while (htemp != null) {

if(! htemp.getNodeData().getKey().equals(key)) {

node = htemp;

htemp = htemp.getNextNode();

}else {

node.nextNode = htemp.nextNode;

htemp = null;

}

}

return head;

}

public void CLAllNode(CLType head) {

CLType htemp;

Data2 nodeData;

htemp = head;

while (htemp != null) {

System.out.println("编号"+htemp.getNodeData().getKey()+",姓名"+htemp.getNodeData().getName()+",年龄"+htemp.getNodeData().getAge());

htemp = htemp.getNextNode();

}

}

}

class Data2 {

private String key;

private String name;

private int age;

public Data2() {}

public Data2(String key,String name,int age) {

this.key = key;

this.name = name;

this.age = age;

}

public String getKey() {

return key;

}

public void setKey(String key) {

this.key = key;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

class CLType {

protected Data2 nodeData;

protected CLType nextNode;

public Data2 getNodeData() {

return nodeData;

}

public void setNodeData(Data2 nodeData) {

this.nodeData = nodeData;

}

public CLType getNextNode() {

return nextNode;

}

public void setNextNode(CLType nextNode) {

this.nextNode = nextNode;

}

}

class MainFunc {

public static void main(String[] args) {

Data2 data1 = new Data2("001","张三",18);

Data2 data2 = new Data2("002","李四",20);

Data2 data3 = new Data2("003","王五",21);

CLType cl1 = new CLType();

CLType cl2 = new CLType();

CLType cl3 = new CLType();

cl1.setNodeData(data1);

cl2.setNodeData(data2);

cl3.setNodeData(data3);

cl1.setNextNode(cl2);

cl2.setNextNode(cl3);

cl3.setNextNode(null);

LinkedList linkedList = new LinkedList();

Data2 testData = new Data2("111","刘双",39);

CLType head = linkedList.CLInsertNode(cl1,"002",testData);

head = linkedList.CLDeleteNode(head,"002");

linkedList.CLAllNode(head);

}

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库一体机 TData
数据库一体机 TData 是融合了高性能计算、热插拔闪存、Infiniband 网络、RDMA 远程直接存取数据的数据库解决方案,为用户提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle、SQL Server、MySQL 和 PostgreSQL 等各种主流数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档