由于java中没有结构体,所以用一个类来定义链表,代码如下

主要包括一个data,还有一个指向后面一个节点的next

重写了toString函数,返回你想要的数据

定义链表的类:

package LinkNode;

public class LinkNode {

public String data;

public LinkNode next;

public String getData(){

return data;

}

public void setData(String data){

this.data=data;

}

public LinkNode getNext(){

return next;

}

public void setNext(LinkNode next){

this.next=next;

}

public LinkNode(String data,LinkNode next){

super();

this.data=data;

this.next=next;

}

public LinkNode(){

super();

}

@Override

public String toString(){

return "data:"+data+" next->"+next;

}

}

1.初始化链表:

public static void initLinkNode(LinkNode L){

L.setData("#");

L.setNext(null);

}

2.遍历链表,返回链表的长度

public static int traverse(LinkNode L){

LinkNode p = L;

int count = 1;

while(p.next!=null){

p = p.next;

count++;

}

return count;

}

3.把链表L的data转化为StringBuffer输出,输出结果为字符串

public static StringBuffer outputLinkNode(LinkNode L){

StringBuffer str = new StringBuffer("");

LinkNode p = L;

for(@SuppressWarnings("unused")

int i=0;;){

str.append(p.data);

if(p.next!=null){

p = p.next;

}

else{

break;

}

}

return str;

}

4.在链表L的尾部插入一个节点,值为data

public static void insertLinkNode(LinkNode L,String data){

LinkNode p = L;

LinkNode q = new LinkNode();

for(@SuppressWarnings("unused")

int i=0;;){

if(p.next==null){

q.setData(data);

q.setNext(null);

p.setNext(q);

System.out.println("Insert "+data+" success.");

break;

}

else{

p = p.next;

}

}

}

5.删除第n个节点(从0开始)

public static void deleteLinkNode(LinkNode L,int n){

int count = 1;

LinkNode p = L;

for(@SuppressWarnings("unused")

int i;;){

if(count == n){

p.setNext(p.next.next);

break;

}

else{

count++;

p = p.next;

}

}

}

6.从index=n开始遍历,如果后面出现str,则返回true否则返回false

public static int lastIndex(LinkNode L,String str){

LinkNode p = L;

int flag = 0;

for(int i=0;i

if(p.data==str){

//System.out.println(i);

flag = i;

}

p = p.next;

}

return flag;

}

测试程序:

package LinkNode;

public class Quarrel extends Method{

public static void main(String[] args){

LinkNode L = new LinkNode();

System.out.println("初始化:");

initLinkNode(L);

System.out.println(L.toString());

System.out.println("插入节点:");

insertLinkNode(L,"R");

insertLinkNode(L,"R");

insertLinkNode(L,"L");

insertLinkNode(L,"L");

insertLinkNode(L,"R");

insertLinkNode(L,"L");

System.out.println(L.toString());

int count = traverse(L);

System.out.println("节点个数:"+count);

StringBuffer str = outputLinkNode(L);

System.out.println(str);

//最后一个L的位置

int lastindex = lastIndex(L,"L");

System.out.println("最后一个L的位置:"+lastindex);

System.out.println("删除一个节点");

deleteLinkNode(L,2);

count = traverse(L);

System.out.println("节点个数:"+count);

str = outputLinkNode(L);

System.out.println(str);

System.out.println(L.toString());

}

}

结果如下:

怎么使用java初始化链表_Java 链表(LinkNode)的简单操作:初始化,遍历,插入,删除等...相关推荐

  1. java初始化一个链表_Java 链表(LinkNode)的简单操作:初始化,遍历,插入,删除等...

    由于java中没有结构体,所以用一个类来定义链表,代码如下 主要包括一个data,还有一个指向后面一个节点的next 重写了toString函数,返回你想要的数据 定义链表的类: package Li ...

  2. java什么时候用链表_java链表的原理及使用方法

    链表是一种物理存储单元上非连续.非顺序(即每个数据对象data存放的位置可以是非连续.非顺序的)的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 链表中每一个元素称为结点,结点可以在运 ...

  3. c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...

    最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...

  4. 简单java数组程序_java(数组及常用简单算法 )

    数组 数组:数组是存储同一种数据类型数据的集合容器. 数组的定义格式: 数据类型[]  变量名  =  new  数据类型[长度]; 数组的好处:对分配到数组对象中每一个数据都分配一个编号(索引值.角 ...

  5. java listnode 合并链表_java链表ListNode删除特定值

    转自:qq_17525769的博客,网址:https://blog.csdn.net/qq_17525769/article/details/53915042 package algorithm; i ...

  6. java如何保存初始化数据_java – 如何在JUnit测试中初始化数据

    我的任务是为服务层编写压力(负载)测试.主要是CRUD操作.我们使用JUnit作为测试框架,使用JUnitPerf构建负载测试,使用 Spring注入服务bean,使用hibernate访问数据库. ...

  7. java switch 值_Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...

  8. java 异常管理员_java web在进行管理员操作的时候,抛出了下面的异常,怎么解决啊...

    我把异常贴出来:HTTP Status 500 - An exception occurred processing JSP page /Admin/adminMember.jsp at line 4 ...

  9. java instanceof翻译_Java 中的instanceof简单讲解

    Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: res ...

最新文章

  1. (五)Docker镜像管理1之镜像操作
  2. SecureCRT连接linux,vim颜色显示问题
  3. 将程序添加到自动启动
  4. 给大家推荐认识一位中科院大佬!
  5. 面试题,反射创建类实例的三种方式是什么
  6. MySQL存储引擎中MyISAM和InnoDB区别
  7. OpenCV_轮廓例子
  8. 商务统计_13 使用excel拟合曲趋势线
  9. 软考高项笔记 | 大数据
  10. Rockchip平台cpu散热风扇随温度自动调速的配置方法
  11. 60906磁悬浮动力系统应用研究与模型搭建
  12. 定能解决No instances available for provider
  13. 磊科路由器怎么设置虚拟服务器,磊科无线路由器静态IP地址分配如何配置
  14. 那些在一个公司死磕了5-10年的人,最后都怎么样了?
  15. 使用nginx反向代理发起跨域请求
  16. fiddler抓取https,提示“CA 根证书不在受信任的存储区域”的解决方法
  17. 成功解决ImportError: cannot import name ‘GloVe‘ from ‘torchtext.legacy.vocab‘
  18. 语义网络 - 语义网络
  19. STM32F407IGT6与STM32F407ZGT6区别
  20. 内最有份量的破解下载网站一览

热门文章

  1. 基本ACL与高级ACL
  2. JS组件系列——开源免费图表组件:Chart.js
  3. 【LeetCode OJ 136】Single Number
  4. SprintBoot开发官方指导文档
  5. 微服务是否使SOA变得无关紧要?
  6. Shiro内置的FilterChain
  7. C++中const——由一个例子想到的
  8. VC中使用Unicode的一些列问题
  9. parse_str与http_build_query的使用
  10. you may be a victim of software counterfeiting 的解药(亲自验证过方法2)