public class Node {
T data; // 数据域
Node next; //指针域
public Node(Node n){
next=n;
}
public Node(T obj,Node n){
data=obj;
next=n;
}
public T getData( ){return data;}
public Node getNext( ){return next;}
}
public class LinkList {
private Node head; // 头指针
private int length; // 长度
public LinkList() { // 构造一个空的链表
length = 0;
head = new Node(null);
}
public Node getHead() { // 获取链表头结点地址
return head;
}
public boolean isEmpty() { // 判空
return length == 0;
}
public int size() { // 求链表长度即数据元素个数
return length;
}
public boolean add(T obj, int pos) { // 在链表中插入一个新元素
if ((pos < 1 || pos > length + 1)) {
return false; // pos值不正确
}
int num = 1;
Node p = head, q = head.next;
while (num < pos) {
p = q;
q = q.next;
num++;
}
p.next = new Node(obj, q);
length++;
return true;
}
public T remove(int pos) { // 删除链表中的某个元素
if (isEmpty()) {
System.out.println("链表为空表");
return null;
} else {
if ((pos < 1 || pos > length + 1)) {
System.out.println("pos值不合法");
return null;
}
int num = 1;
Node p = head, q = head.next;
while (num < pos) {
p = q;
q = q.next;
num++;
}
p.next = q.next;
length--;
return q.data;
}
}
public int find(T obj) {
if (isEmpty()) {
System.out.println("链表为空表");
return -1;
}
int num = 1;
Node p = head.next; // p引用的是头结点之后的结点
while (p != null) { // 单链表的判空条件
if (p.data.equals(obj) == false) { // equals判断两个对象值是否相等
p = p.next;
num++;
} else
break;
}
if (p == null)
return -1;
return num;
}
public T value(int pos) { // 获取链表中的一个元素
if (isEmpty()) {
System.out.println("链表为空表");
return null;
} else {
if ((pos < 1 || pos > length + 1)) {
System.out.println("pos值不合法");
return null;
}
int num = 1;
Node q = head.next;
while (num < pos) {
q = q.next;
num++;
}
return q.data;
}
}
public boolean modify(T obj, int pos) { // 更新链表中的某个元素
if (isEmpty()) {
System.out.println("链表为空表");
return false;
} else {
if ((pos < 1 || pos > length + 1)) {
System.out.println("pos值不合法");
return false;
}
int num = 1;
Node q = head.next;
while (num < pos) {
q = q.next;
num++;
}
q.data = obj;
return true;
}
}
public void nextOrder() { // 依次访问链表中每个元素并输出
Node p = head.next;
while (p != null) {
System.out.print(p.data + " n");
p = p.next;
}
}
public void clear() { // 清空链表
length = 0;
head.next = null;
}
}
public class AirLineList extends LinkList{
public int flightNum; //航班号
public String airplaneNum; //飞机号
public String departure; //出发地
public String destination; //到达地
public String flightDate; //飞行日期
public String airplaneType; //机型
public int ticketMargin; //票余量
public int getFlightNum() {
return flightNum;
}
public void setFlightNum(int flightNum) {
this.flightNum = flightNum;
}
public String getAirplaneNum() {
return airplaneNum;
}
public void setAirplaneNum(String airplaneNum) {
this.airplaneNum = airplaneNum;
}
public String getDeparture() {
return departure;
}
public void setDeparture(String departure) {
this.departure = departure;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
destination = destination;
}
public String getFlightDate() {
return flightDate;
}
public void setFlightDate(String flightDate) {
this.flightDate = flightDate;
}
public String getAirplaneType() {
return airplaneType;
}
public void setAirplaneType(String airplaneType) {
this.airplaneType = airplaneType;
}
public int getTicketMargin() {
return ticketMargin;
}
public void setTicketMargin(int ticketMargin) {
this.ticketMargin = ticketMargin;
}
@Override
public String toString() {
return flightNum + "t" + airplaneNum + "t" + departure + "t" + destination + "t" + flightDate + "t"
+ airplaneType + "t " + ticketMargin + "t";
}
}
public class CustomerList extends LinkList {
public String name; //姓名
public long phone; //手机号
public int flightNum; //航班号
public int ticketNum; //订票量
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getphone() {
return phone;
}
public void setphone(long phone) {
this.phone = phone;
}
public int getFlightNum() {
return flightNum;
}
public void setFlightNum(int flightNum) {
this.flightNum = flightNum;
}
public int getTicketNum() {
return ticketNum;
}
public void setTicketNum(int ticketNum) {
this.ticketNum = ticketNum;
}
@Override
public String toString() {
return name + "t" + phone + "t" + flightNum + "t" + ticketNum + "t";
}
}
import java.util.Scanner;
public class Main {
static LinkList