java实现队列

public class Duilie {

	// 创建头节点
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Node hear = new Node(" ");
		Lianbiao l = new Lianbiao(hear);
		Node num1 = new Node("no.1");
		l.add(num1);
		Node num2 = new Node("no.2");
		l.add(num2);
		Node num3 = new Node("no.3");
		l.add(num3);
		Node num4 = new Node("no.4");
		l.add(num4);
		Node num5 = new Node("no.5");
		l.add(num5);
		System.out.print("经过重复添加获得:");
		l.bianli();
		System.out.print("将元素内容no.6添加到no.3后面得:");
		Node num6 = new Node("no.6");
		l.add(num6);
		l.bianli();
		System.out.print("删除元素得:");
		l.del();
		l.bianli();
		System.out.print("删除元素得:");
		l.del();
		l.bianli();
		l.chazhao(3);
		l.chazhao("no.3");
		l.del();
		l.bianli();
		l.del();
		l.bianli();
		l.del();
		l.bianli();
		l.del();
		l.bianli();
		l.del();
		l.bianli();	
	}
}

class Node {
	String data;
	Node next = null;

	Node(String data) {
		this.data = data;
	}

	public String getdata() {
		return data;
	}

	public Node getnext() {
		return next;
	}

	public void setnext(Node next) {
		this.next = next;
	}
}

class Lianbiao {
	Node hear = null;
	Node tail = null;
	Node prenode = null;
	int a = 0; // 记录列表长度

	Lianbiao(Node hear) {
		this.hear = hear;
		tail = hear;
		prenode = hear;
	}

	public Node gethear() {
		return hear;

	}

	// 链表元素的添加
	public void add(Node node) {
		node.setnext(prenode.getnext());
		prenode.setnext(node);
		prenode = node;
		a++;
	}

	// 元素的删除
	public void del() {
		if (hear.getnext() == null)
			System.out.println("队列中已经没有元素");
		else{
			hear.setnext(hear.getnext().getnext());
		    a--;
		}
	}

	// 元素内容查找(根据位置查找内容)
	public void chazhao(int i) {
		if (i > a)
			System.out.println("列表长度不足");
		else {
			Node n = hear;
			System.out.print("位置" + i + "结点内容为:");
			while (i > 0) {
				if (i == 1) {
					System.out.println(n.getnext().getdata());
				}
				n = n.getnext();
				i--;
			}
		}
	}

	// 元素内容查找(根据内容查找位置)
	public void chazhao(String str) {
		Node n = hear;
		int i = 0, j = 0;
		while (n != null) {

			if (n.getdata() == str) {
				System.out.print("内容" + str + "结点位置为:" + i + " ");
				j = 1;
			}
			i++;
			n = n.getnext();
		}
		if (j == 0) {
			System.out.println("没有找到内容" + str + "的结点");
		} else {
			System.out.println();
		}
	}

	// 遍历输出列表
	public void bianli() {
		Node n = hear;
		while (n != null) {
			System.out.print(n.getdata() + " ");
			n = n.getnext();
		}
		System.out.println();
	}

}

*原创作品,转载请表明出处。有建议或者问题欢迎联系我,QQ1595787997

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值