单链表——基本操作(求表长、查找、插入、删除)(java)
来源:互联网 发布:7z解压软件 mac专用 编辑:程序博客网 时间:2024/06/06 02:56
public class LinkedList {public Node first;//定义头结点public LinkedList(){this.first=null;}//定义节点类 public class Node{int data;Node next=null;public Node(int data){this.data=data;}}//求表长,时间性能为O(n)public int Length(Node first){Node p=first; //p指向表的第一个节点int j=0;while(p!=null){p=p.next;j++; //当前p指向的是第j个结点}return j;}//查找第K个元素(按位置查找),平均时间性能为O(n)public Node FindKth(int K,Node first){Node p=first;int i=1;while(p!=null&&i<K){p=p.next;i++;}if(i==K)return p;elsereturn null;}//查找元素K(按值查找),平均时间性能为O(n)public Node Find(int K,Node first){Node p=first;while(p!=null&&p.data!=K){p=p.next;}return p;}//在第i个结点插入(即在第i-1(1<=i<=n+1)个结点后)插入一个值为X的新结点,public Node insert(int i,int X,Node first){Node p,node;if(i==1){ //新结点插在表头node=new Node(X);node.next=first;return node;}p=FindKth(i-1,first);if(p==null){System.out.println("参数i错");return null;}else{node=new Node(X);node.next=p.next; //新结点插入在第i-1个结点的后面p.next=node; //注意这一句和上一句的先后顺序,不能交换return first;}}//删除链表的第i(1<=i<=n)个位置上的结点public Node delete(int i,Node first){Node p,node; if(i==1){ //若要删除的是表的第一个结点node=first; //node指向第一个结点if(first!=null) //从链表中删除first=first.next;elsereturn null;return first;}p=FindKth(i-1,first); //平均查找次数为n/2,平均时间性能O(n)if(p==null){System.out.println("第"+(i-1)+"个节点不存在");return null;}else if(p.next==null){System.out.println("第"+i+"个节点不存在");return null;}else{node=p.next; //node指向p的下一个结点p.next=node.next;}return first;}}
0 0
- 单链表——基本操作(求表长、查找、插入、删除)(java)
- 单链表基本操作:初始化,建立,插入,查找,删除
- 单链表基本操作的实现--创建、插入、查找、删除
- 单链表操作(建表、插入、删除、查找、求表长),
- 链表基本操作(删除,插入,查找)
- Linked List的基本操作(创建/删除/插入/查找)
- 二叉查找树的基本操作之查找插入删除
- java专题——二叉树(插入、查找、删除)
- 二叉查找树的查找、插入、删除、释放等基本操作的实现(C语言)
- java 单链表基本操作--插入、删除、测长、打印
- Java实现单链表插入删除等基本操作
- 单链表结点读取、插入、删除操作(基本操作)-C++
- 单链表建立,插入,删除,查找,遍历操作
- 单链表建立,插入,删除,查找,遍历操作
- 单链表 建立, 查找, 删除, 插入 操作
- 单链表建立,插入,删除,查找,遍历操作!!!!
- 链表(单双链表)用法与基本操作(构建、查找、插入、删除)实现
- 数据结构基础5.2:二叉搜索树(BST)的基本操作(插入、查找、删除)
- Ubuntu下SVN的安装及使用方法
- Android WebView 开发详解(三)
- Jenkins+Maven+Git+Tomcat快速搭建持续集成环境
- Codeforces 796A
- 微信小程序从注册到上线系列专题
- 单链表——基本操作(求表长、查找、插入、删除)(java)
- 使用json生成Bootstrap无限极导航菜单
- mySql 查询当天、本周、最近7天、本月、最近30天的语句
- jsp中C标签的使用用例
- 第三十三讲项目四 多数中的最大
- android自定义绘图控件,绘图所占画布比例过小
- 安卓环境配置
- Huawei OJ-人民币转换
- Spring 之AOP AspectJ切入点语法详解(最全面、最详细。)(转)