摘要:
循环队列:解决了假溢出问题,让队列的应用更加灵活了一点。关键技巧:判断队空:front=rear判断队满:(rear+1)%size=front 当队尾指针指向队头指针的前一个指针时,队列已满,所以队列中最多可存size-1个元素。抽象数据类型表示://循环队列抽象数据类型class CirQueue{public: //构造函数、析构函数 CirQueue(int sz) { size=sz; front=rear=0; //初始化为0 data=new int[size]; //开辟这个队列存储空间 } ~CirQueue(){} //入队、出队函数 bool EnQueue(co... 阅读全文
摘要:
双向链表是为了解决在链表中访问直接前驱和直接后继的问题。很简单:抽象类定义://双向链表结点结构体struct DouLinkNode{ int data; DouLinkNode *lLink,*rLink;};//双向链表抽象数据类型定义class DouLinkList{public: //构造函数和析构函数 DouLinkList() { head=NULL; current=head; } ~DouLinkList(){} //插入、删除、搜索、输出 dir=0,前驱方向 dir=1,后继方向 bool Insert(int i,int x,int dir); bool Del... 阅读全文