目录
物理结构图
逻辑结构图
- public void add(GoodsNode goodsNode) {
- GoodsNode temp = node;
- while(true) {
- if(temp.next == null) {
- break;
- }
- temp = temp.next;
- }
- temp.next = goodsNode;
- }
1.直接插入到头结点的尾部
2.插入的结点的编号小于了下一个结点的时候插入
- public void idAdd(GoodsNode goodsNode) {
- GoodsNode temp = node;
- boolean flg = false;
- while(true) {
- if(temp.next == null) {
- break;
- }
- if(temp.next.id > goodsNode.id) {
- break;
- }else if(temp.next.id > goodsNode.id) {
- flg = true;
- break;
- }
- temp = temp.next;
- }
- if(flg == true) {
- System.out.print("已经存在了该商品");
- }else {
- goodsNode.next = temp.next;
- temp.next = goodsNode;;
- }
- }
1. 找到目标结点
2. 根据新的元素进行修改(价格和名称)
- public void updateNode(GoodsNode goodsNode) {
- if(node.next == null) {
- System.out.print("链表为空");
- return;
- }
- GoodsNode temp = node.next;
- boolean flg = false;
- while(true) {
- if(temp.next == null) {
- break;
- }
- else if(temp.id == goodsNode.id) {
- flg = true;
- break;
- }
- temp = temp.next;
- if(flg) {
- temp.name = goodsNode.name;
- temp.price = goodsNode.price;
- }else {
- System.out.print("在整个链表中未找到结点");
- }
- }
- }
1. 寻找目标结点
2. 删除返回目标结点
- public void delete(int id) {
- GoodsNode temp = node;
- boolean flg = false;
- while(true) {
- if(temp.next == null) {
- break;
- }
- if(temp.next.id == id) {
- flg = true;
- break;
- }
- temp = temp.next;
- }
- if(flg == true) {
- temp.next = temp.next.next;
- }else {
- System.out.print("未找到结点");
- }
- }
- public void list() {
- if(node.next == null) {
- System.out.print("空链表");
- return;
- }
- GoodsNode temp = node.next;
- while(true) {
- if(temp == null) {
- break;
- }
- System.out.println(temp);
- temp = temp.next;
- }
- }
- package linked;
-
- public class GoodsNode {
- public int id;
- public int price;
- public String name;
- public GoodsNode next;
- public GoodsNode(int id,int price,String name) {
- this.id = id;
- this.name = name;
- this.price = price;
- }
- public String toString() {
- return "id=" + id + "name=" + name + "price=" + price;
- }
-
- }
- package linked;
-
- public class LinkedList {
- //头结点
- private GoodsNode node = new GoodsNode(0,0,"");
- //添加节点
- public void add(GoodsNode goodsNode) {
- GoodsNode temp = node;
- while(true) {
- if(temp.next == null) {
- break;
- }
- temp = temp.next;
- }
- temp.next = goodsNode;
- }
- //按照商品编号进行插入
- public void idAdd(GoodsNode goodsNode) {
- GoodsNode temp = node;
- boolean flg = false;
- while(true) {
- if(temp.next == null) {
- break;
- }
- if(temp.next.id > goodsNode.id) {
- break;
- }else if(temp.next.id == goodsNode.id) {
- flg = true;
- break;
- }
- temp = temp.next;
- }
- if(flg == true) {
- System.out.print("已经存在了该商品");
- }else {
- goodsNode.next = temp.next;
- temp.next = goodsNode;;
- }
- }
- //修改结点
- public void updateNode(GoodsNode goodsNode) {
- if(node.next == null) {
- System.out.print("链表为空");
- return;
- }
- GoodsNode temp = node.next;
- boolean flg = false;
- while(true) {
- if(temp == null) {
- break;
- }
- else if(temp.id == goodsNode.id) {
- flg = true;
- break;
- }
- temp = temp.next;
- if(flg) {
- temp.name = goodsNode.name;
- temp.price = goodsNode.price;
- }else {
- System.out.print("在整个链表中未找到结点");
- }
- }
- }
- //删除结点
- public void delete(int id) {
- GoodsNode temp = node;
- boolean flg = false;
- while(true) {
- if(temp.next == null) {
- break;
- }
- if(temp.next.id == id) {
- flg = true;
- break;
- }
- temp = temp.next;
- }
- if(flg == true) {
- temp.next = temp.next.next;
- }else {
- System.out.print("未找到结点");
- }
- }
- //查看链表的每一个元素
- public void list() {
- if(node.next == null) {
- System.out.print("空链表");
- return;
- }
- GoodsNode temp = node.next;
- while(true) {
- if(temp == null) {
- break;
- }
- System.out.println(temp);
- temp = temp.next;
- }
- }
- }
- package linked;
-
- public class LinkedTest {
- public static void main(String[] args) {
- GoodsNode goodsNode1 = new GoodsNode(1,10,"耐克运动鞋");
- GoodsNode goodsNode2 = new GoodsNode(2,10,"李宁运动鞋");
- GoodsNode goodsNode3 = new GoodsNode(3,10,"阿迪运动鞋");
- LinkedList list = new LinkedList();
- list.add(goodsNode1);
- list.add(goodsNode2);
- list.add(goodsNode3);
- list.list();
- }
- }