package shujujiegou;
import java.util.Scanner;
public class ListNode5 {
int data;
ListNode5 next;
ListNode5 first;
ListNode5(int x){
data = x;
}
private void makeEmpty() {
ListNode q;
while(first->next != null){ //当链不空时,删除链表所有结点
q = first->next;
first->next = q->next; //保存被删结点,从链上摘下该结点
delete q; //删除(仅保留一个表头结点)
}
}
//前插法建立单链表
public void inputFront(ListNode5 engTag){
//endTag是约定的输入序列结束的标志,如果输入序列是正整数,engTag可以是0或负数
//如果输入序列是字符,endTag可以是字符集中不会出现的字符,如"\0"
ListNode5 newNode,data;
makeEmpty();
Scanner scan = new Scanner(System.in);
Object val = scan.nextInt();
while(val != engTag){
newNode = new ListNode5((int) val); //创建新结点
if(newNode == null){
System.out.print("存储分配错误!");
}
newNode->next = first->next;
first->next = newNode; //插入到链表前端
System.out.print(val);
}
}
//后插入建立单链表
public void inputRear(ListNode5 endTag){
ListNode5 newNode,last,value;
makeEmpty();
Scanner scan = new Scanner(System.in);
Object val1 = scan.nextInt();
last = first;
while(val1 != endTag){ //指向表尾
newNode = new ListNode5((int) val1); //创建新结点
if(newNode == null){
System.out.print("存储分配错误!");
}
last->next = newNode;
last = newNode; //插入到表末端
}
last->next = null;
}
public static void main(String[] args) {
}
}
Java头插法和尾插法建立单链表
于 2020-11-18 18:20:32 首次发布