单链表基本操作的实现
2016-09-13 16:00
399 查看
package pac1; class Node{ public Node next; //指针域 public int data; //数据域 public Node(int data) { this.data = data; } public void show(){ System.out.print(data+" "); } } public class LinkList { public Node head; //头节点 public LinkList(){ this.head=null; } //插入一个头结点 public void addHeadNode(int data) { Node node=new Node(data); node.next=head; head=node; } //头插法创建表,将新节点插入到头结点之后 public void creatList1(LinkList L,int [] arr){ for(int i=0;i<arr.length;i++){ Node node=new Node(arr[i]); //创建一个新节点 node.next = head; head = node; } } //尾插法创建表 public void creatList2(LinkList L,int [] arr){ addHeadNode(arr[0]);//将第一个元素作为头结点 Node rear=head; for(int i=1;i<arr.length;i++){ Node node=new Node(arr[i]); //创建一个新节点 rear.next= node; rear=node; } } //根据序号查找节点的值 public int findNode(LinkList L,int i){ int j=0; Node p=head; while(p!=null&&j<i){ j++; p=p.next; } return p.data; } //根据元素值查找序号 public int locateElem(LinkList L,int data){ Node p=head; int i=0; while(p!=null&&p.data!=data){ p=p.next; i++; } return i; } //插入结点,将值为x的新节点插入到的第i个结点。思路:先找到第i-1个节点,在其后再插入新节点 public void addNode(LinkList L,int i,int data){ Node p=head; int j=0; Node s=new Node(data); while(j<i-1){ p=p.next; j++; } s.next=p.next; p.next=s; } //删除节点,删除第i个节点。思路:先找到第i-1个节点,在其后再插入新节点 public void delNode(LinkList L,int i){ Node p=head; int j=0; while(j<i-1){ p=p.next; j++; } p.next=p.next.next; } //显示表 public void showList(){ Node current=head; while(current!=null){ current.show(); current=current.next; } System.out.println(); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int [] arr={1,2,3,4,5}; LinkList L=new LinkList(); L.creatList2(L, arr); L.showList(); // System.out.println(L.findNode(L, 2)); // System.out.println(L.locateElem(L, 4)); L.addNode(L, 3, 6); L.showList(); L.delNode(L, 3); L.showList(); } }
相关文章推荐
- C语言实现双向链表的基本操作
- 详细的单链表基本操作C/C++实现
- 链表基本操作的实现
- 用递归实现对链表的基本操作
- 链表基本操作的实现
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 链表的基本操作实现
- 使用C++实现链表的基本操作
- 链表基本操作的程序实现(转2)
- C语言实现链表的创建、增加、删除、查询、逆序、清空等基本操作
- 单链表 基本操作 的实现源码
- 带头结点的链表实现线性表的基本操作
- 链表基本操作的实现
- 单链表的基本操作与实现
- 链表的基本操作(c实现)
- 关于链表结构的基本操作 c 实现 (创建,插入删除,反转,合并链表,查找,是否有环,链表相交情况)
- [C++]数据结构:有序链表SortedChain的基本实现与操作
- 单链表基本操作的简单实现
- c++实现链表的基本操作
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)