链表的基础

本文详细介绍了链表和栈的基本概念与实现方法,包括节点的构造与赋值,链表的插入、删除操作,以及栈的压入与弹出过程。通过具体的代码示例,展示了如何使用链表实现栈的数据结构。

定义

private class Node
{
	Item item;
	Node next;
}
//构造
Node first = new Node();
Node second = new Node();
Node third = new Node();
//赋值
first.item = to;
second.item = be;
third.item = or;
//指向 third 指向null
first.next = second;
second.next = third;

操作

//表头插入节点
Node oldfirst = first;
first = new Node();
first.item = not;
first.next = oldfirst;
//表头删除节点
first = first.next;
//表尾插入节点
Node oldlast = last;
last = new Node();
last.item = not;
oldlast.next= last;

//其他位置插入节点和删除操作

//遍历数组
for(int i=0; i<n;i++)
{ 处理 a[i];}
//遍历链表
for(Node x =fisrt,; x!=null; x=x.next)
{ 处理 x.item}


栈的实现

//栈的实现(下压)
private Node node;(最近添加的元素)
public void push(Item item)
{	
	Node oldnode = node;
	node = new Node ();
	node.next = oldnode;
	node.item = item;
}
public void pop()
{ Item item = node.item;
  node = node.next;
  return item;
}

//FIFO(先进先出队列)
private Node first;//(栈顶,最早添加的元素)
private Node last;//(尾巴,最近添加的元素)
private int N;//队中元素的数量。
public void enqueue(Item item)
{
	Node oldlast = last;
	last = new Node();
	last.item = item;
	oldlast.next = null;
	if(isEmpty) first = last;
	else oldlast.next = last;
	N++;
}

public void dequeue()
{
	Item item =first.item;
	first = first.next;
	if(isEmpty) last=null;
	N--;
	return item;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值