Skip to content

Commit

Permalink
link_list
Browse files Browse the repository at this point in the history
  • Loading branch information
ljfirst committed Aug 18, 2018
1 parent 7a4b095 commit 896369b
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 0 deletions.
Binary file added bin/link_list/SinglyLinkedList.class
Binary file not shown.
110 changes: 110 additions & 0 deletions data_structure/link_list/SinglyLinkedList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package link_list;
/**
*@author liujun
*@date: 2018-8-18 上午01:08:11
*@author—Email:ljfirst@mail.ustc.edu.cn
*@description:单链表
*1. 单链表的头插法和尾插法
*2. 单链表逆置
* 2.1 数组存放,倒序输出
* 2.2 利用栈倒叙输出(递归)
* 2.3 反置链表,然后输出(非递归)
* 2.4 反置链表,然后输出(递归)
*@version 1.0
*/
public class SinglyLinkedList {

int value;
SinglyLinkedList next = null;

public SinglyLinkedList(int value) {
// TODO Auto-generated constructor stub
this.value = value;
}

//单链表——头插法
public SinglyLinkedList insertHead(int[] list) {
// TODO Auto-generated method stub
//单链表表首结点-头插法,赋值
System.out.println("单链表——头插法");
SinglyLinkedList first = null;
for (int i = 0; i < list.length; i++) {
SinglyLinkedList link = new SinglyLinkedList(list[i]);
link.next = first;
first = link;
}
return first;
}

//单链表——尾插法
public SinglyLinkedList insertTail(int[] list) {
System.out.println("单链表——尾插法");
// TODO Auto-generated method stub
SinglyLinkedList point = null;
SinglyLinkedList first = point;
//循环赋值
for (int i = 0; i < list.length; i++) {
//尾插法
SinglyLinkedList link = new SinglyLinkedList(list[i]);
//首次判断
if (first == null) {
first = point = link;
}
point.next = link;
point = point.next;
}
return first;
}
//2. 单链表逆置
// 2.1 数组存放,倒序输出
public void arrayReverse(SinglyLinkedList first) {
// TODO Auto-generated method stub
System.out.println("数组存放,倒序输出");
}

// 2.2 利用栈倒叙输出(递归)
public void stackReverse(SinglyLinkedList first) {
// TODO Auto-generated method stub
System.out.println("利用栈倒叙输出(递归)");
}

// 2.3 反置链表,然后输出(非递归)
public SinglyLinkedList listReverse(SinglyLinkedList first) {
// TODO Auto-generated method stub
System.out.println("反置链表,然后输出(非递归)");
SinglyLinkedList head = null;
SinglyLinkedList p = null;
while (first != null) {
p = first;
first = first.next;
p.next = head;
head = p;
}
return head;
}


// 2.4 反置链表,然后输出(递归)
public void listReverseRecursion(SinglyLinkedList first) {
// TODO Auto-generated method stub
}

//输出链表
public void printLink(SinglyLinkedList first) {
// TODO Auto-generated method stub
while (first != null) {
System.out.print(first.value + " ");
first = first.next;
}
}

//主方法测试
public static void main(String[] args) {
SinglyLinkedList first = new SinglyLinkedList(0);
int[] array = {1,2,3,4,5,6,7,8,9,10};
first = first.insertTail(array);
first.printLink(first);
first = first.listReverse(first);
first.printLink(first);
}
}

0 comments on commit 896369b

Please sign in to comment.