数据结构单向链表java实现.docx
- 文档编号:2154339
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:9
- 大小:54.73KB
数据结构单向链表java实现.docx
《数据结构单向链表java实现.docx》由会员分享,可在线阅读,更多相关《数据结构单向链表java实现.docx(9页珍藏版)》请在冰点文库上搜索。
数据结构单向链表java实现
数据结构-单向链表(JAVA实现)
一、思想
单向链表是一种线性表,但是它不会按线性的顺序存储数据,它存储的数据分散在内存中。
单向链表由N各节点(Node)组成,每一个Node记录本Node的数据及下一个Node注[1]。
注[1]:
在C语言内的解释:
每一个节点(Node)记录本节点的数据及下一个节点的内存地址。
上图描述了单向链表存储情况。
存储是分散的,每一个节点只要记录下一节点,就把所有数据串了起来,形成了一个线性表,即单向链表。
二、程序简要说明
程序对单向链表做了简单实现,实现的方法有:
向链表的末尾增加一个元素
publicbooleanadd(Edata)
向链表的某一个位置插入一个元素
publicvoidaddEByIndex(inti,EnewE)
获取链表内某一个位置的元素
publicEgetEbyIndex(inti)
删除链表内某一个位置的元素
publicvoiddeleteEByIndex(inti)
程序分为三个文件
1、节点定义
publicclassNode
2、链表定义及操作
publicclassOneWayLinkedList
3、测试文件
publicclassTestMain
三、程序
Node类
packagecom.linkedlist.oneWay;
publicclassNode
privateEdata;
//下一个元素
privateNode
publicNode(Edata,Node
this.data=data;
if(next==null){
}else{
this.next=next;
}
}
publicEgetData(){
returndata;
}
publicvoidsetData(Edata){
this.data=data;
}
/**
*获取上下一个元素
*@return
*/
publicNode
returnnext;
}
/**
*设置下一个元素
*@paramnext
*/
publicvoidsetNext(Node
this.next=next;
}
}
OneWayLinkedList类
packagecom.linkedlist.oneWay;
/**
*根据数据结构单向链表原理,简单实现单向链表。
*单向链表主要是记录链表中的第i个元素a,及a的下一个元素(第i+1个元素)b。
*a与b组成的数据称为单向链表的一个节点。
*链表有N个节点组成。
*@authordev1
*
*@param
*/
publicclassOneWayLinkedList
//第一个元素
privateNode
//最后一个元素
privateNode
privateintsize=0;
publicOneWayLinkedList(){
}
/**
*向列表最后追加元素
*
*@paramdata
*@return
*/
publicbooleanadd(Edata){
if(this.last==null){
if(this.first==null){
//第一个元素
this.first=newNode
}else{
//第二个元素
this.last=newNode
this.first.setNext(this.last);
}
}else{
Node
Node
node.setNext(newNode);
this.last=newNode;
}
this.size++;
returntrue;
}
/**
*获取第i个位置的元素
*
*@parami
*@return
*/
publicEgetEbyIndex(inti){
Node
returnnode.getData();
}
/**
*向i节点插入一个元素
*@parami
*@paramnewE
*/
publicvoidaddEByIndex(inti,EnewE){
Node
Node
ni.setNext(newNode);
this.size++;
}
/**
*获得某一个节点
*@parami
*@return
*/
publicNode
Node
intj=1;
if(j
while(j
node=node.getNext();
j++;
}
}
returnnode;
}
XX文库-让每个人平等地提升自我
publicvoiddeleteEByIndex(inti){
Node
Node
node2.setNext(node1.getNext());
this.size--;
}
/**
*获取第一个元素
*
*@return
*/
publicNode
returnfirst;
}
/**
*获取最后一个元素
*
*@return
*/
publicNode
returnlast;
}
/**
*获取链表的元素个数
*
*@return
*/
publicintgetSize(){
returnsize;
}
}
TestMain类
packagecom.linkedlist.oneWay;
publicclassTestMain{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Stringstr1="123";
Stringstr2="456";
Stringstr3="789";
Stringstr4="qwe";
OneWayLinkedList
owlls.add(str1);
owlls.add(str2);
owlls.add(str3);
owlls.add(str4);
Node
System.out.println(firstNode+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex
(1)+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex
(2)+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex(3)+"\t"+owlls.getSize());
owlls.addEByIndex(2,"mkf");
System.out.println(owlls.getEbyIndex
(1)+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex
(2)+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex(3)+"\t"+owlls.getSize());
owlls.deleteEByIndex
(2);
System.out.println(owlls.getEbyIndex
(1)+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex
(2)+"\t"+owlls.getSize());
System.out.println(owlls.getEbyIndex(3)+"\t"+owlls.getSize());
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 单向 java 实现