Ë«¶Ë¶ÓÁÐ(Deque:double ended queue)¾ÍÊÇÒ»¸öÁ½¶Ë¶¼ÊǽáβµÄ¶ÓÁС£¶ÓÁеÄÿһ¶Ë¶¼¿ÉÒÔ²åÈëÊý¾ÝÏîºÍÒÆ³ýÊý¾ÝÏî¡£Ïà¶ÔÓÚÆÕͨ¶ÓÁУ¬Ë«¶Ë¶ÓÁеÄÈë¶ÓºÍ³ö¶Ó²Ù×÷ÔÚÁ½¶Ë¶¼¿É½øÐС£
Ë«¶Ë¶ÓÁеÄʾÒâͼ£º
left£º×ó¶Ë right£ºÓÒ¶Ë
ÕâÀïÎÒÃÇʹÓÃ×î³£ÓõÄ˳Ðò½á¹¹À´´æ´¢Ë«¶Ë¶ÓÁУ¬ÎªÁ˽ÚÊ¡¿Õ¼ä£¬°ÑËüÊ×βÏàÁ¬£¬¹¹³ÉÑ»·¶ÓÁС£²¢Çҹ涨leftÖ¸Ïò×ó¶ËµÄµÚÒ»¸öÔªËØ£¬rightÖ¸ÏòÓҶ˵ÄÏÂÒ»¸öλÖá£ÄÇô¶Ó¿ÕµÄÅжÏÔòÊÇleft==right£¬¶ÓÂúÊÇ(left-1+MAX)%MAX==right»òÕß(right-left+MAX)%MAX==MAX¡£<†·Ÿ"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+z+rPuM+4vdq/tLT6wuujujwvcD4KPHA+wOC2qNLlus3A4Mq1z9Y8L3A+CjxwPjxwcmUgY2xhc3M9"brush:java;">#include
void check(int& end) //¶Ô¶ËºÅ½øÐмì²é { while (cin >> end && !(end == 0 || end == 1)) { cout << "¶ËºÅ²»¶Ô£¬ÖØÐÂÊäÈ룺"; } } void input(Deque& deque) //ÊäÈ뺯Êý { int end; cout << "ÔÚÖ¸¶¨¶ËÈë¶Ó£¬0×ó¶Ë£¬1ÓÒ¶Ë£º"; check(end); ElemType data; cout << "ÊäÈëÊý¾Ý£¬ÊäÈë0½áÊø" << endl; while (cin >> data && data) { deque.pushAt(data, end); } } void traverse(Deque& deque) //´ÓÖ¸¶¨¶Ë±éÀú { int end; cout << "´ÓÖ¸¶¨¶Ë±éÀú£º"; check(end); deque.print(end); } int main() { cout << "******Ë«¶Ë¶ÓÁÐÑÝÁ·******" << endl; Deque deque; cout << "н¨Ë«¶Ë¶ÓÁÐ" << endl; cout << "¶ÓÁÐÊÇ·ñΪ¿Õ£º"; deque.empty() ? cout << "Yes!" << endl : cout << "No!" << endl; input(deque); traverse(deque); input(deque); traverse(deque); ElemType data; int end; cout << "»ñȡָ¶¨¶¨¶ËµÄÍ·ÔªËØ£º"; check(end); deque.topAt(data, end) ? cout << data << endl : cout << "¶Ó¿Õ£¡" << endl; cout << "ɾ³ýÖ¸¶¨¶¨¶ËµÄÍ·ÔªËØ£º"; check(end); deque.popAt(end) ? cout << "ɾ³ý³É¹¦" << endl : cout << "¶Ó¿Õ£¡" << endl; traverse(deque); cout << "Çå¿Õ¶ÓÁУ¬¶ÓÁÐÊÇ·ñΪ¿Õ£º"; deque.clear(); deque.empty() ? cout << "Yes!" << endl : cout << "No!" << endl; system("pause"); return 0; }
ÈôÊÇÓÐËù°ïÖú£¬¶¥Ò»¸öŶ£¡
רÀ¸Ä¿Â¼£ºÊý¾Ý½á¹¹ÓëË㷨Ŀ¼