第一章 基礎
1.3.32 棧與隊列融合的數據結構:鏈表實現
1.接口public interface ISteque
{
/**
數據結構java語言描述。* 進棧
* @param val 進棧元素
*/
void push(T val);
/**
* 出棧元素
java判斷正負數、* @return 返回出棧元素
*/
T pop();
/**
* 進隊
* @param val 進隊元素
java中負數怎么表示、*/
void enter(T val);
/**
* 獲取元素個數
* @return 返回元素個數
*/
數據結構基礎知識,int getCount();
/**
* 返回隊列是否為空
* @return 隊列是否為空
*/
boolean empty();
數據結構與算法基礎,/**
* 獲取隊列頭
* @return 返回隊列頭部元素
*/
T getFront();
/**
數據結構嚴蔚敏、* 獲取棧頂元素
* @return 返回棧頂
*/
T getTop();
}
2.實現/**
學數據結構需要的基礎、* 鏈隊列棧:循環鏈表表示
*/
//(push/pop)[h,5,4,3,2,1,2,3](enter)
public class LinkSteque implements ISteque
{
/**
數據結構JAVA,* 頭節點
*/
private Node head;
/**
* 尾節點
*/
java數據結構面試題、private Node p;
/**
* 元素個數
*/
private int count;
/**
數據結構是、* 構造函數
*/
public LinkSteque()
{
this.head=new Node();
this.head.next=head;
java數據結構有哪些,this.p=head;
}
@Override
public void push(T val)
{
var t=new Node(val,head.next);
《數據結構》?this.head.next=t;
this.count++;
//保證尾節點始終指向鏈表尾
if(this.count==1)
this.p=t;
}
java負數?@Override
public T pop()
{
if(this.empty())
throw new IndexOutOfBoundsException("隊列空!");
var t=this.head.next;
Java null,var val=t.data;
this.head.next=t.next;
this.count--;
//空表的情況指向head就可以了
if(this.count==0)
this.p=this.head;
數據結構與算法java語言描述。return val;
}
@Override
public void enter(T val)
{
var t=new Node(val,p.next);
java輸入一個數判斷正負、p.next=t;
p=t;
this.count++;
}
@Override
public int getCount()
java常用數據結構。{
return this.count;
}
@Override
public boolean empty()
{
java基本數據結構、return this.count==0;
}
@Override
public T getFront()
{
if(this.empty())
java 數據結構,throw new IndexOutOfBoundsException("隊列空!");
return this.p.data;
}
@Override
public T getTop()
{
if(this.empty())
throw new IndexOutOfBoundsException("隊列空!");
return this.head.next.data;
}
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态