数据结构单向链表java实现.docx

上传人:b****1 文档编号:2154339 上传时间:2023-05-02 格式:DOCX 页数:9 大小:54.73KB
下载 相关 举报
数据结构单向链表java实现.docx_第1页
第1页 / 共9页
数据结构单向链表java实现.docx_第2页
第2页 / 共9页
数据结构单向链表java实现.docx_第3页
第3页 / 共9页
数据结构单向链表java实现.docx_第4页
第4页 / 共9页
数据结构单向链表java实现.docx_第5页
第5页 / 共9页
数据结构单向链表java实现.docx_第6页
第6页 / 共9页
数据结构单向链表java实现.docx_第7页
第7页 / 共9页
数据结构单向链表java实现.docx_第8页
第8页 / 共9页
数据结构单向链表java实现.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构单向链表java实现.docx

《数据结构单向链表java实现.docx》由会员分享,可在线阅读,更多相关《数据结构单向链表java实现.docx(9页珍藏版)》请在冰点文库上搜索。

数据结构单向链表java实现.docx

数据结构单向链表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;

//下一个元素

privateNodenext;

publicNode(Edata,Nodenext){

this.data=data;

if(next==null){

}else{

this.next=next;

}

}

publicEgetData(){

returndata;

}

publicvoidsetData(Edata){

this.data=data;

}

/**

*获取上下一个元素

*@return

*/

publicNodegetNext(){

returnnext;

}

/**

*设置下一个元素

*@paramnext

*/

publicvoidsetNext(Nodenext){

this.next=next;

}

}

OneWayLinkedList类

packagecom.linkedlist.oneWay;

/**

*根据数据结构单向链表原理,简单实现单向链表。

*单向链表主要是记录链表中的第i个元素a,及a的下一个元素(第i+1个元素)b。

*a与b组成的数据称为单向链表的一个节点。

*链表有N个节点组成。

*@authordev1

*

*@param

*/

publicclassOneWayLinkedList{

//第一个元素

privateNodefirst;

//最后一个元素

privateNodelast;

privateintsize=0;

publicOneWayLinkedList(){

}

/**

*向列表最后追加元素

*

*@paramdata

*@return

*/

publicbooleanadd(Edata){

if(this.last==null){

if(this.first==null){

//第一个元素

this.first=newNode(data,null);

}else{

//第二个元素

this.last=newNode(data,null);

this.first.setNext(this.last);

}

}else{

Nodenode=this.last;

NodenewNode=newNode(data,null);

node.setNext(newNode);

this.last=newNode;

}

this.size++;

returntrue;

}

/**

*获取第i个位置的元素

*

*@parami

*@return

*/

publicEgetEbyIndex(inti){

Nodenode=getNodeByIndex(i);

returnnode.getData();

}

/**

*向i节点插入一个元素

*@parami

*@paramnewE

*/

publicvoidaddEByIndex(inti,EnewE){

Nodeni=getNodeByIndex(i-1);

NodenewNode=newNode(newE,ni.getNext());

ni.setNext(newNode);

this.size++;

}

/**

*获得某一个节点

*@parami

*@return

*/

publicNodegetNodeByIndex(inti){

Nodenode=this.first;

intj=1;

if(j

while(j

node=node.getNext();

j++;

}

}

returnnode;

}

XX文库-让每个人平等地提升自我

publicvoiddeleteEByIndex(inti){

Nodenode1=getNodeByIndex(i);

Nodenode2=getNodeByIndex(i-1);

node2.setNext(node1.getNext());

this.size--;

}

/**

*获取第一个元素

*

*@return

*/

publicNodegetFirst(){

returnfirst;

}

/**

*获取最后一个元素

*

*@return

*/

publicNodegetLast(){

returnlast;

}

/**

*获取链表的元素个数

*

*@return

*/

publicintgetSize(){

returnsize;

}

}

TestMain类

packagecom.linkedlist.oneWay;

publicclassTestMain{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Stringstr1="123";

Stringstr2="456";

Stringstr3="789";

Stringstr4="qwe";

OneWayLinkedListowlls=newOneWayLinkedList();

owlls.add(str1);

owlls.add(str2);

owlls.add(str3);

owlls.add(str4);

NodefirstNode=owlls.getFirst();

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());

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2