package SingleLInkedList; public class test { public static void main(String[] args) { Teacher h1=new Teacher( 1,"教师1","男","职称普通教师","博士","职务","轻大","软件"); Teacher h2=new Teacher( 2,"教师1","男","职称普通教师","博士","职务","轻大","软件"); Teacher h3=new Teacher( 3,"教师1","男","职称普通教师","博士","职务","轻大","软件"); Teacher h4=new Teacher( 4,"教师1","男","职称普通教师","博士","职务","轻大","软件"); Teacher h5=new Teacher( 5,"教师1","男","职称普通教师","博士","职务","轻大","软件"); SingleLinkedList singleLinkedList = new SingleLinkedList(); singleLinkedList.addOrderNo(h4); singleLinkedList.addOrderNo(h1); singleLinkedList.addOrderNo(h2); singleLinkedList.addOrderNo(h5); singleLinkedList.addOrderNo(h3); singleLinkedList.listAll(); System.out.println("在进行任何操作之前的链表排序"); singleLinkedList.select(2); System.out.println("添加教工信息"); Teacher h7=new Teacher( 6,"教师1","男","职称普通教师","博士","职务","轻大","软件"); singleLinkedList.addOrderNo(h7); singleLinkedList.listAll(); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`"); singleLinkedList.delete(1); singleLinkedList.listAll(); } } // 定义SingleLinkedList 管理教师信息 class SingleLinkedList { private Teacher head = new Teacher(0, "", "", "", "", "", "", ""); public Teacher getHead() { return head; } // 初始化一个尾节点,指向最后一个元素,默认等于head private Teacher temp = head; // 不考虑教师编号大小的条件下将教师信息插入在链表的最后面。 public void add(Teacher teacher) { } // 第二种方式在添加教师时, 根据排名将教师插入到指定位置(如果有这个排名,则添加失败,并给出提示) public void addOrderNo(Teacher teacher) { Teacher temp = head; boolean flag = false; while (true) { if (temp.getNext() == null) { // 该链表为空 break; } if (temp.getNext().getNo() > teacher.getNo()) { break; } else if (temp.getNext().getNo() == teacher.getNo()) { flag = true; // 说明编号存在 break; } temp = temp.getNext(); // 后移,遍历当前列表 } if (flag) { // 不能添加,说明编号存在 System.out.printf("准备插入的教师编号%d已经存在了\n", teacher.getNo()); } else { // 插入到链表中 teacher.setNext(temp.getNext()); temp.setNext(teacher); } } // 输出链表中所有信息 public void listAll () { Teacher temp = head.getNext(); if (temp == null) { System.out.println("该链表为空 无法查询"); return; } while (temp != null) { System.out.println(temp); temp = temp.getNext(); } } // 查询链表信息 public void select(int no){ Teacher temp = head; boolean flag=false; if (temp.getNext() == null) { System.out.println("该链表为空 无法查询指定信息"); return; } while(true){ if (temp.getNext().getNo()==no){ System.out.println(temp); // 找到要查询的对象 break; } temp=temp.getNext(); } } //删除链表中指定教师信息(根据教师工号进行匹配) public void delete(int no) { Teacher temp = head; boolean flag = false; // 标志是否找到待删除节点 while (true) { if (temp.getNext() == null) { // 已经到节点的最后 break; } if (temp.getNext().getNo() == no) { // 找到待删除节点的前一个节点temp flag = true; break; } temp = temp.getNext(); } // 判断flag if (flag) { // 找到 // 可以删除 temp.setNext(temp.getNext().getNext()); } else { System.out.printf("要删除的 %d 教师信息不存在\n", no); } } } class Teacher { private int no; private String name; private String sex; private String title; private String degree; private String position; private String school; private String major; private Teacher next; public Teacher(int no, String name, String sex, String title, String degree, String position, String school, String major) { this.no = no; this.name = name; this.sex = sex; this.title = title; this.degree = degree; this.position = position; this.school = school; this.major = major; } @Override public String toString() { return "Teacher{" + "no=" + no + ", name='" + name + '\'' + ", sex='" + sex + '\'' + ", title='" + title + '\'' + ", degree='" + degree + '\'' + ", position='" + position + '\'' + ", school='" + school + '\'' + ", major='" + major + '\'' + '}'; } public int getNo() { return no; } public void setNo(int no) { this.no = no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDegree() { return degree; } public void setDegree(String degree) { this.degree = degree; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public Teacher getNext() { return next; } public void setNext(Teacher next) { this.next = next; } }
单链表完成简易版本教师信息管理系统
最新推荐文章于 2024-05-14 18:13:37 发布