java 实现链表
public class MyList {
Entry head;
class Entry {
Object data;
Entry next;
public Entry(Object data) {
this.data = data;
this.next = null;
}
public Entry(){
this.data = -1;
this.next = null;
}
}
public MyList() {
head = new Entry();
}
//不算头节点
public void show() {
Entry p = head;
while (p.next != null) {
System.out.println(p.next.data);
p = p.next;
}
}
//不算头节点
public int size() {
Entry p = head.next;
int sum = 0;
while (p != null) {
sum++;
p = p.next;
}
return sum;
}
//头插法
public void insertHead(int val){
Entry p = new Entry(val);
p.next = head.next;
head.next = p;
}
//尾插法
public void insrtTail(int val){
Entry p = new Entry(val);
//先找出最好一个节点
Entry temp = head;
while (temp.next!=null){
temp = temp.next;
}
temp.next = p;
p.next = null;
}
//计算插入位置的节点
public boolean insertPos(int pos,int val){
Entry p = new Entry(val);
if (pos < 0 || pos > size()){
return false;
}
Entry cur = head;
//先计算出插入的位置
for (int i =0;i<=pos-1;i++){
cur = cur.next;
}
p.next = cur.next;
cur.next = p;
return true;
}
public static void main(String args[]){
MyList myList = new MyList();
// myList.insertHead(1);
// myList.insertHead(2);
// myList.insertHead(3);
// myList.insertHead(4);
// myList.insrtTail(1);
// myList.insrtTail(2);
// myList.insrtTail(3);
// myList.insrtTail(4);
myList.insertPos(0,4);
myList.insertPos(1,6);
myList.insertPos(2,3);
myList.insertPos(3,1);
myList.show();
}
}
https://blog.csdn.net/qq_37937537/article/details/80101744
java 实现链表的更多相关文章
- JAVA单向链表实现
JAVA单向链表实现 单向链表 链表和数组一样是一种最常用的线性数据结构,两者各有优缺点.数组我们知道是在内存上的一块连续的空间构成,所以其元素访问可以通过下标进行,随机访问速度很快,但数组也有其缺点 ...
- Java单链表反转 详细过程
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/guyuealian/article/details/51119499 Java单链表反转 Java实 ...
- Java 单向链表学习
Java 单向链表学习 链表等同于动态的数组:可以不同设定固定的空间,根据需要的内容动态的改变链表的占用空间和动态的数组同一形式:链表的使用可以更加便于操作. 链表的基本结构包括:链表工具类和节点类, ...
- java 单链表 练习
练习一下java单链表的简单习题 package com.test1; import java.util.Stack; public class SingleListDemo { /** * 返回单链 ...
- java ListNode 链表
链表是一种数据结构:由数据和指针构成,链表的指针指向下一个节点. java ListNode 链表 就是用Java自定义实现的链表结构. 基本结构: class ListNode { //类名 :Ja ...
- Java单链表反转图文详解
Java单链表反转图文详解 最近在回顾链表反转问题中,突然有一些新的发现和收获,特此整理一下,与大家分享 背景回顾 单链表的存储结构如图: 数据域存放数据元素,指针域存放后继结点地址 我们以一条 N1 ...
- java实现链表
单链表 package com.voole.linkedlist; public class Test { public static void main(String[] args) { Linke ...
- Java关于链表的增加、删除、获取长度、打印数值的实现
package com.shb.java; public class Demo8 { public Node headNode = null; /** * @param args * @date 20 ...
- Java单链表的实现
将结点Node进行封装,假设Node的操作有增加,删除,查找,打印几个操作.将Node实现为链表Link的内部类,简化代码. package Chapter5; import java.securit ...
- java单链表代码实现
用惯了C++,java写起来果然不太爽...不废话了,上代码... package javaInnerclassDemo; class Link{ class Node{ private String ...
随机推荐
- OpenCV_复制一个或多个ROI图像区域
在对图像进行处理过程中,我们经常需要对图像的某个或多个感兴趣区域进行处理.在OpenCV中我们能够非常方便地获取指定ROI区域的子图像.下面这段代码就演示了怎样获取指定单个ROI或多个ROI图像区域. ...
- Centos7源码安装Apache和PHP
源码安装Apache 安装需要的依赖 yum -y install gcc autoconf automake make pcre pcre-devel openssl openssl-devel# ...
- OS X更新Catalina 10.15.2后虚拟机黑屏(已解决)
简述 问题:更新OS X 10.15.2后VM Ware进unbuntu 16.0黑屏,但是VM Ware 有显示,情况类似如下: 解决办法 重启系统,command+r 进入恢复模式,打开bas ...
- [转帖]英特尔首款采用10nm技术的混合CPU“Lakefield”即将发布
英特尔首款采用10nm技术的混合CPU“Lakefield”即将发布 intel 也出soc了 里面的东西 跟 安卓和 apple的a系列很像. https://baijiahao.baidu.com ...
- SQL SERVER DATEDIFF函数
定义: DATEDIFF() 函数返回两个日期之间的时间间隔. 语法: DATEDIFF(datepart,startdate,enddate) 参数: ①datepart 参数可以是下列的值: da ...
- vm下centos7 mini版 NAT模式下配置静态IP
1.查看虚拟机的默认网关和子网掩码 a.vm菜单栏点击编辑->虚拟网络编辑器 b.选择VMnet8,点击NAT设置,查看子网掩码.网关IP 2. 修改服务器的网络配 ...
- 图的DFS与BFS遍历
一.图的基本概念 1.邻接点:对于无向图无v1 与v2之间有一条弧,则称v1与v2互为邻接点:对于有向图而言<v1,v2>代表有一条从v1到v2的弧,则称v2为v1的邻接点. 2.度:就是 ...
- 灾备系统 RTO与RPO
出处: https://blog.51cto.com/se7en/1085442 http://www.iso27001.org.cn/fuwu/it/iso22301/show_511.html h ...
- ARST 第五周打卡
Algorithm : 做一个 leetcode 的算法题 /////////////////////////////////////////////////////////////////// // ...
- 基于PriorityQueue(优先队列)解决TOP-K问题
TOP-K问题是面试高频题目,即在海量数据中找出最大(或最小的前k个数据),隐含条件就是内存不够容纳所有数据,所以把数据一次性读入内存,排序,再取前k条结果是不现实的. 下面我们用简单的Java8代码 ...