JAVA双向链表:实例

在这里插入图片描述

`import java.util.Scanner;

//学生信息管理系统(双向链表实例)
public class Dome_main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Iand i = new Iand();
		CaoZuo c = new CaoZuo();
		Scanner input = new Scanner(System.in);
      
		while (true) {
			System.out.println("----<<教务系统(教师用)>>-----");
			System.out.println("1,登陆");
			System.out.println("2,退出");
			System.out.print("请输入你的选择:");
			int choice = input.nextInt();
			if (choice == 1) {
				System.out.print("请输入用户名:");
				String name = input.next();
				System.out.print("请输入密码:");
				String pass = input.next();
				if (i.getIand(name, pass)) {
					while (true) {

						System.out.println("欢迎" + name + "使用该系统,如有疑惑请联系教务处");
						System.out.println("功能如下:");
						System.out.println("1,增加学生信息");
						System.out.println("2,修改学生信息");
						System.out.println("3,删除学生信息");
						System.out.println("4,显示学生信息");
						System.out.println("5,退出");
						System.out.print("请输入你的选择:");
						int choice1 = input.nextInt();
						switch (choice1) {
						case 1:
							System.out.println("请输入3名同学的信息:学号,姓名,性别");
							System.out.println("第一名同学");
							System.out.print("学号");
							int id = input.nextInt();
							System.out.print("姓名:");
							String names = input.next();
							System.out.print("性别:");
							String sex = input.next();
							List l1 = new List(id, names, sex);
							System.out.println("第二名同学");
							System.out.print("学号");
							id = input.nextInt();
							System.out.print("姓名:");
							names = input.next();
							System.out.print("性别:");
							sex = input.next();
							List l2 = new List(id, names, sex);
							System.out.println("第三名同学");
							System.out.print("学号");
							id = input.nextInt();
							System.out.print("姓名:");
							names = input.next();
							System.out.print("性别:");
							sex = input.next();
							List l3 = new List(id, names, sex);
							c.getAdd(l1);
							c.getAdd(l2);
							c.getAdd(l3);
							
							break;
						case 2:
							System.out.println("请输入要修改同学的信息:学号(不能变),姓名,性别");
							System.out.print("学号");
							id = input.nextInt();
							System.out.print("姓名:");
							names = input.next();
							System.out.print("性别:");
							sex = input.next();
							List l4 = new List(id, names, sex);
							c.getSplit(l4);
							break;
						case 3:
							System.out.println("请输入要修改同学的信息:学号");
							System.out.print("学号");
							id = input.nextInt();
							c.getRemove(id);
							break;
						case 4:
							c.getShows();
							break;
						
							
						}
						if(choice1 == 5)
						{
							break;
						}

					}
				} else {
					System.out.println("密码或用户名不正确");
					System.out.println("选择重置,请输入1,不重置请输入2");
					int temp = input.nextInt();
					if (temp == 1) {
						System.out.print("请输入用户名:");
						String Name = input.next();
						i.setUsername(Name);
						System.out.print("请输入密码:");
						String Pass = input.next();
						i.setPassword(Pass);

					}

				}
			} else {
				System.out.println("欢迎下次使用");
				System.exit(0);
			}
		}
	}

}
`

相关操作

public class CaoZuo {
	List l = new List(0, "", "");// 初始化
	// 增加

	public void getAdd(List list) {
		List t = l;// 设置一个临时的头结点
		while (true)// 查找最后的位置
		{
			if (t.next == null) {
				break;
			}
			
			t = t.next;
		}
		t.next = list;
		list.pre = t;
	}

	// 修改
	public void getSplit(List list) {
		if (l.next == null) {
			System.out.println("数据为空,无法修改");
			return;
		}
		List t = l.next;
		boolean flag = false;
		while (true) {
			if (t == null) {
				break;
			}
			if (t.getId() == list.getId()) {
				flag = true;
				break;
			}
			t = t.next;
		}
		if (flag) {
			t.setName(list.getName());
			t.setSex(list.getSex());
		}

	}

	// 删除
	public void getRemove(int id) {
		if (l.next == null) {
			System.out.println("数据已空,无法删除");
			return;
		}
		List t = l.next;
		boolean flag = false;
		while (true) {
			if (t == null) {
				break;
			}
			if (t.getId() == id) {
				flag = true;
				break;
			}
			t = t.next;
		}
		if (flag) {
			t.pre.next = t.next;
			if (t.next != null) {
				t.next.pre = t.pre;
			}
		}
	}

	// 显示
	public void getShows() {
		if (l.next == null) {
			return;
		}
		List t = l.next;
		while (true) {
			if (t == null) {
				break;
			}
			t.show();
			t = t.next;
		}
	}
}

节点信息

public class List {
	private int id;
	private String name;
	private String sex;
	public List next;// 指向下一个节点
	public List pre;// 指向前一个节点

	

	public List(int id, String name, String sex) {
		this.id = id;
		this.name = name;
		this.sex = sex;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getId() {
		return this.id;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getSex() {
		return this.sex;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getName() {
		return this.name;
	}

	// 显示单个节点
	public void show() {
		System.out.printf("学号 = %d\t姓名 = %s\t性别 = %s\n", id, name, sex);
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值