| ||||||||||
| 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