如何实现单链表的增删操作
来源:互联网 发布:java读取身份证阅读器 编辑:程序博客网 时间:2024/05/16 13:53
链表作为最基础的数据结构,在程序设计中具有非常重要的作用,起存储特点如下:可以用任意一组存储单元来存储单链表中的数据元素(存储单元可以是不连续的),而且,除了存储每个数据元素ai 外,还必须存储指示其直接后继元素的信息,这两部分信息组成的数据元素aI 的存储映像成为结点。N个结点连接在一块被称为链表,当结点只包含其后继结点的信息的链表就被称为单链表,如下图所示.
在java 语言中可定义如下数据类来存储信息结点信息。
class Node{
Node next=null;
int data;
public Node(int a){
this.data=a;
}
}
链表最重要的操作就是对链表的插入和删除元素。
单链表的插入操作是将值为X的新结点插入到单链表的第i个结点的位置
下面给出操作链表的操作示例Java代码:
class Node{
Node next=null;
int data;
public Node(int a){
this.data=a;
}
}
public class test3 {
static Node head=null;
/**
* 插入节点
* @param a
*/
public void addNode(int a){
Node newNode = new Node(a);
if(head==null){
head=newNode;
return;
}
Node tmp=head;
while(tmp.next!=null){
tmp=tmp.next;
}
tmp.next=newNode;
}
/**
* 删除节点
* @param i
* @return
*/
public boolean deleteNode(int i){
if(i<0 && i>getLength()-1){
return false;
}
int index=1;
Node preNode=head;
Node cuurenNode=head.next;
while(i>index){
preNode=cuurenNode;
cuurenNode=cuurenNode.next;
index++;
}
preNode.next=cuurenNode.next;
return true;
}
/**
* 获取链表长度
* @return
*/
public int getLength(){
int length=0;
Node tmp=head;
if(tmp!=null){
tmp=head.next;
length++;
}
return length;
}
/**
* 打印节点
*/
public static void println(){
Node tmp=head;
while(tmp!=null){
System.out.println(tmp.data);
tmp=tmp.next;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
test3 test =new test3();
test.addNode(1);
test.addNode(2);
test.addNode(3);
test.addNode(4);
test.addNode(5);
println();
test.deleteNode(1);
println();
}
}
- 如何实现单链表的增删操作
- 单链表的增删操作
- 单链表的增删查改等操作实现
- js实现的增删改查操作
- 如何通过Mybatis实现数据的增删改查(CRUD)操作?
- 链表的基本操作的实现---- 增删改查
- 数据结构之链表的增删操作的Java实现
- 【Ex.】通讯录的增删查改清空以及排序操作的实现
- 单链表的增删改查基本操作
- 对xml增删改查操作的实现
- Java JDBC实现数据库的增删改查操作
- 反射实现所有实体的增删改操作(jQuery+json)
- 红黑树增删操作的代码实现(上)
- Hibernate实现数据的增删改查(CRUD)操作
- TableWidget使用说明和增删改操作的实现
- JDBC 实现 含参的增删改查操作
- Java实现对cookie的操作(增删改查)
- 通过java实现对Ldap的增删改操作
- adaboost原理(包含权重详细解释)
- Linux小知识
- 诡异的线程加锁问题
- go 读取文件源码解析
- 【vue】生命周期
- 如何实现单链表的增删操作
- 线程
- 用div模仿多行文本框(文本框高度自适应)
- 给webview添加自己的信号
- 我使用的Java学习教材和个人杂谈
- 一台电脑如何装3个系统操作教程
- mysql触发器学习日志
- ckfinder上传图片含中文,预览无法正常显示问题
- POJ-1061-青蛙的约会(扩展欧几里德)