数据结构探险(一)——栈

数据结构探险(一)——栈,第1张

概述本文章向大家介绍数据结构探险(一)——栈,主要包括数据结构探险(一)——栈使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

FIFO

普通队列

循环队列

c++实现循环队列

#ifndef MYQUEUE_H

#define MYQUEUE_H

/****************************************/

/*环形队列C++实现*/

/****************************************/

class MyQueue

{

public:

MyQueue(int queueCapacity); //InitQueue(&Q)

virtual ~MyQueue(); //DestroyQueue(&Q)

voID ClearQueue(); //ClearQueue(&Q)

bool QueueEmpty() const; //QueueEmpty(Q)

bool QueueFull() const;

int QueueLength() const; //QueueLength(Q)

bool EnQueue(int element); //EnQueue(&Q,element)

bool DeQueue(int &element); //DeQueue(&Q,&element)

voID QueueTraverse(); //QueueTraverse(Q,visit())B

private:

int *m_pQueue;//队列数组指针

int m_iQueueLen;//队列元素个数

int m_iQueueCapacity;//队列数组容量

int m_ihead;

int m_iTail;

};

#endif

#include

#include

#include"MyQueue.h"

#include

using namespace std;

MyQueue::MyQueue(int queueCapacity)

{

m_iQueueCapacity =queueCapacity;

m_pQueue = new int[m_iQueueCapacity];

ClearQueue();

}

MyQueue::~MyQueue()

{

delete []m_pQueue;

m_pQueue=NulL;

}

voID MyQueue::ClearQueue()

{

m_ihead=0;

m_iTail=0;

m_iQueueLen=0;

}

bool MyQueue::QueueEmpty() const

{

if(m_iQueueLen==0)

return true;

else

return false;

//return m_iQueueLen==0?true:false;

}

int MyQueue::QueueLength() const

{

return m_iQueueLen;

}

bool MyQueue::QueueFull() const

{

if(m_iQueueCapacity==m_iQueueLen)

return true;

else

return false;

}

bool MyQueue::EnQueue(int element)

{

if(QueueFull())

{

return false;

}

else

{

m_pQueue[m_iTail]=element;

m_iTaiL++;

m_iTail=m_iTail%m_iQueueCapacity;

m_iQueueLen++;

return true;

}

}

bool MyQueue::DeQueue(int &element)//element必须是引用才可以带回值

{

if(QueueEmpty())

{

return false;

}

else

{

element=m_pQueue[m_ihead];

m_ihead++;

m_ihead=m_ihead%m_iQueueCapacity;

m_iQueueLen--;

return true;

}

}

voID MyQueue::QueueTraverse()

{

for(int i=m_ihead;i

{

cout<

}

}

#include

#include

#include"MyQueue.h"

#include"MyQueue.cpp"

/****************************/

/* 实现环形队列 */

/****************************/

using namespace std;

int main(voID)

{

MyQueue *p =new MyQueue(4);

p->EnQueue(10);

p->EnQueue(12);

p->EnQueue(16);

p->EnQueue(18);

p->EnQueue(20);

p->QueueTraverse();

int e=0;

p->DeQueue(e);

cout<

cout<

delete p;

p=NulL;

system("pause");

return 0;

}

当存入的数据不是int,而是其他复杂数据类型时

总结

以上是内存溢出为你收集整理的数据结构探险(一)——栈全部内容,希望文章能够帮你解决数据结构探险(一)——栈所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存