您的位置:首页 > 编程语言 > Java开发

java实现创建链表以及插入节点,查找结点,删除节点等操作

2017-08-31 19:52 1026 查看
涉及两个类,一个DATA,一个是CLType

代码如下:

class DATA{
String key;
String name;
int age;
}
public class CLType {
DATA nodedata=new DATA();
CLType nextnode;
CLType CLAddEnd(CLType head,DATA nodedate){//追加节点
CLType node,htemp;
if((node=new CLType())==null){
System.out.println("申请内存失败!");
return null;
}else{
node.nodedata=nodedate;
node.nextnode=null;
if(head==null){
head=node;
return head;
}
htemp=head;
while(htemp.nextnode!=null){
htemp=htemp.nextnode;
}
htemp.nextnode=node;
return head;
}
}
CLType CLAddFirst(CLType head,DATA nodedata){//在开始追加节点
CLType node;
if((node=new CLType())==null){
System.out.println("申请内存失败!");
return null;
}else{
node.nodedata=nodedata;
node.nextnode=head;
head=node;
return head;
}
}
CLType CLTFindNode(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;
}
CLType CLInsertNode(CLType head,String findkey,DATA nodedata){//插入节点
CLType node,nodetemp;
if((node=new CLType())==null){
System.out.println("申请内存失败!");
return null;
}
node.nodedata=nodedata;
nodetemp=CLTFindNode(head,findkey);
if(nodetemp!=null){
node.nextnode=nodetemp.nextnode;
nodetemp.nextnode=node;
}else{
System.out.println("没有找到正确的插入位置!");
}
return head;
}
int CLDeleteNode(CLType head,String key){//删除节点
CLType node,htemp;
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;
}
int CLLength(CLType head){//获取链表的长度
CLType htemp;
int len=0;
htemp=head;
while(htemp!=null){
len++;
htemp=htemp.nextnode;
}
return len;
}
void CLALLNode(CLType head){//打印所有的节点
CLType htemp;
DATA nodedata;
htemp=head;
System.out.printf("当前的链表一共有%d个节点,链表的所有节点数据如下:",CLLength(head));
while(htemp!=null){
nodedata=htemp.nodedata;
System.out.println(nodedata.key+" "+nodedata.name+" "+nodedata.age);
htemp=head.nextnode;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表
相关文章推荐