public class Test1 {
public static void main(String args[]) {
SingleLinkedList sll = new SingleLinkedList();
sll.addHead(11);
sll.addHead(22);
sll.addHead(13);
sll.addTail(24);
sll.addTail(35);
sll.addTail(22);
sll.display();
sll.addByIndex(6, 4);
sll.display();
sll.delNodeByIndex(2);
sll.display();
sll.selectSort();
sll.display();
}
}
class SingleLinkedList{
private int size;//链表节点个数
private Node head;//头节点
public SingleLinkedList(){//初始化
head = new Node();
this.head.next = null;
this.size = 0;
}
public class Node{
private int data;
private Node next;
public Node(){
}
public Node(int data){
this.data = data;
}
}
//打印链表
public void display(){
for(Node x=head.next; x!=null; x=x.next){
System.out.print(x.data + " ");
}
System.out.println("");
}
//在表头添加元素
public Object addHead(int obj){
Node newHead = new Node(obj);
if(size == 0){
head.next = newHead;
}
else{
newHead.next = head.next;
head.next = newHead;
}
size++;
return obj;//可以不return,返回void
}
//在表尾插入节点
public void addTail(int obj){
Node newTail = new Node(obj);
Node temp = head;
while(temp.next != null){
temp = temp.next;
}
temp.next = newTail;
size++;
}
//任意位置添加元素
public void addByIndex(int index, int obj){
if(index < 1 || index > size){
System.out.println("插入位置不合法");
return ;
}
Node temp = head;
Node newNode = new Node(obj);
for (int i = 0; i < index-1 ; i++) {
temp = temp.next;
}
newNode.next = temp.next;
temp.next = newNode;
}
//选择排序
public void selectSort(){
Node p = head.next;
int temp;
while(p != null){
Node q = p.next;
while(q != null){
if(p.data > q.data){
temp = p.data;
p.data = q.data;
q.data = temp;
}
q = q.next;
}
p = p.next;
}
}
//删除任意位置节点
public void delNodeByIndex(int index){
if(index < 1 || index > size){
System.out.println("插入位置不合法");
return ;
}
Node temp = head;
for (int i = 0; i < index-1; i++) {
temp = temp.next;
}
temp.next = temp.next.next;
}
链表
最新推荐文章于 2024-10-05 12:07:50 发布