1.链表
public class 基础 : MonoBehaviour
{
public class MyQueue
{
public class QueueData
{
public QueueData next;
public object data;
public QueueData(QueueData last, object data)
{
last.next = this;
this.data = data;
}
public QueueData(object data)
{
this.data = data;
}
}
//top永远是不变的 代表第一个元素
QueueData topData;
//pre是变的 每次新进来的元素都更新它
QueueData preData;
public void Enqueue(object data)
{
if(topData == null)
{
topData = new QueueData(data);
preData = topData;
}
else
{
//不是第一个元素 那就需要表明他的上一个元素是谁
preData = new QueueData(preData, data);
}
}
public object Dequeue()
{
object result = topData.data;
topData = topData.next;
return result;
}
}
private void Start()
{
MyQueue mq = new MyQueue();
mq.Enqueue(1);
mq.Enqueue(44);
mq.Enqueue(88);
Debug.Log(mq.Dequeue());
Debug.Log(mq.Dequeue());
}
}
2.数组
C#用数组实现队列