Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:双向链表就可以轻松实现,这题就是纯链表操作In Reply To:双向链表就可以轻松实现,这题就是纯链表操作 Posted by:090609103 at 2011-03-13 13:09:57 > // 1028 Web Navigation.cpp : 定义控制台应用程序的入口点。 > // > > #include "stdafx.h" > #include <iostream> > #include <string> > > using namespace std; > > struct Node > { > string site; > Node* pre; > Node* next; > }; > > void Insert( Node* &cur, Node* &b, Node* &f, const string site ) > { > // 新建节点 > > Node* s = new Node(); > s->site = site; > s->pre = cur; > s->next = NULL; > > // 连 > > cur->next = s; > b = cur; > cur = s; > > // 删除f之后所有节点 > > while( f ) > { > Node* p = f->next; > delete f; > f = p; > } > } > > bool Back( Node* &cur, Node* &b, Node* &f ) > { > if( b ) > { > f = cur; > cur = b; > b = b->pre; > return true; > } > else > return false; > } > > bool Forward( Node* &cur, Node* &b, Node* &f ) > { > if( f ) > { > b = cur; > cur = f; > f = f->next; > return true; > } > else > return false; > } > > void ShowCur( const Node* cur, const bool flag ) > { > if( flag ) > cout << cur->site << endl; > else > cout << "Ignored\n"; > } > > void Dispose( Node* &cur, Node* &b, Node* &f ) > { > while( b ) > { > Node* p = b->pre; > delete b; > b = p; > } > > delete cur; > cur = NULL; > > while( f ) > { > Node* p = f->next; > delete f; > f = p; > } > } > > int main() > { > Node* cur = new Node(); > cur->site = "http://www.acm.org/"; > cur->pre = NULL; > cur->next = NULL; > Node* b = cur->pre; > Node* f = cur->next; > > string cam, buff; > cin >> cam; > while( cam != "QUIT" ) > { > char ch = getchar(); > if( ch == ' ' ) > { > cin >> buff; > } > bool flag = true; > if( cam == "VISIT" ) > Insert( cur, b, f, buff ); > else if( cam == "BACK" ) > flag = Back( cur, b, f ); > else if( cam == "FORWARD" ) > flag = Forward( cur, b, f ); > ShowCur( cur, flag ); > cin >> cam; > } > // 释放链表 > Dispose( cur, b, f ); > > > system("pause"); > return 0; > } > Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator