POJ 1057 FILE MAPPING

原创 2012年03月28日 16:52:04

1. 这道题根本不会做,直接看的别人的解体报告,看了别人的解题报告的算法说明,还是不会做,只好看代码了;

2. 这篇博客写得比我写得好(http://jovesky.info/blog/2011/08/12/poj-1057-file-mapping-c-edition/),我就是看人家的看懂的;

3. 递归+vector,一层套一层,以后还得看看怎么做的。现在思路会了,但是vector还是不会用,上午刚看了primer还是不会用,另外细节问题很繁琐,日后就是为了学递归也得再做一遍这道题。




#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

struct node
{
    vector<string> file;
    vector<node> dir;
    string name;
};
int end = 0;
void fileinput(node &now)
{
    string tmp;
    while (1)
    {
        cin >> tmp;
        if (tmp[0] == '#')
        {
            end = 1;
            break;
        }
        else if (tmp[0] == 'f')
            now.file.push_back(tmp);
        else if (tmp[0] == 'd')
        {
            node d;
            d.name = tmp;
            fileinput(d);
            now.dir.push_back(d);
        }
        else break;
    }
    sort(now.file.begin(), now.file.begin() + now.file.size());
    return;
}

void fileoutput(node now, int n)
{
    int i, j;
    for (i = 0; i < n; i++)
        cout << "|     ";
    cout << now.name << endl;
    for (i = 0; i < (int)now.dir.size(); i++)
        fileoutput(now.dir[i], n + 1);
    for (i = 0; i < (int)now.file.size(); i++)
    {
        for (j = 0; j < n; j++)
            cout << "|     ";
        cout << now.file[i] << endl;
    }
    return;
}



int main()
{
    int cases = 1;
    while (cases)
    {
        node root;
        root.name = "ROOT";
        fileinput(root);
        if (end)
            break;
        cout << "DATA SET " << cases << ':' << endl;
        fileoutput(root, 0);
        cases++;
        cout << endl;
    }
    return 0;
}


poj 1057-File mapping

这道题基本思路其实很简单,就是个堆栈的问题,用函数递归做也能得到很好的效果。唯一比较烦的就是每个记录开头都有个自编号,偷懒干脆就在递归函数里多加了个参数,哈哈哈。 跑了一遍目测没什么问题提交之,结果...

[递归]poj 1057 FILE MAPPING

原题地址:这里写链接内容 这题也是递归解法。

内存映射文件(Memory Mapping File)

感谢  http://blog.csdn.net/sszgg2006/article/details/8573348 http://doudouclever.blog.163.com/blog/s...

进程间通信:使用file-mapping kernel object(文件映射内核对象)

一个机器上的两个进程间通信,可以使用很多种方式。但看《windows核心编程》说,其实归根结底都是使用了file-mapping kernel object。把那一章看了看,长了不少知识。但是我最感兴...

Java Read CSV File In Java With OpenCSV library 以及中文件乱码解决, Mapping CSV with Java beans

sample.csv文件: COUNTRY,CAPITAL,POPULATION India,New Delhi, 1.21B People's republic of China,Beijing,...

【IPC进程间通讯之三】内存映射文件Mapping File

IPC进程间通信+共享内存Mapping                IPC(Inter-Process Communication,进程间通信)。         文件映射(Mapping)是...

基于visual c++之windows核心编程代码分析(22)Mapping File编程

文件映射(mapping)是一种将文件内容映射到进程的虚拟地址空间的技术。视图(View)是一段虚拟地址空间,进程可以通过View来存取文件的内容,视图是一段内存,可以使用指针来操作视图。使用文件映射...
  • weiqubo
  • weiqubo
  • 2012年01月04日 16:07
  • 1779

基于visual c++之windows核心编程代码分析Mapping File编程

文件映射(mapping)是一种将文件内容映射到进程的虚拟地址空间的技术。视图(View)是一段虚拟地址空间,进程可以通过View来存取文件的内容,视图是一段内存,可以使用指针来操作视图。使用文件映射...

内存映射文件File Mapping

最初接触File Mapping是为了能够方便地处理一个几百兆的大文件,当时查了些资料大概了解了一下就匆匆动手了,因为知其然而不知其所以然,在使用过程中遇到了不少问题,今天在这里就是想把这些历史遗留问...

web.xml(7)_mime-mapping、welcome-file-list、error-page

10.mime-mapping:mime-mapping包含两个子元素extension和mime-type.定义某一个扩展名和某一MIME Type做对映. MIME(Multipurpose In...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1057 FILE MAPPING
举报原因:
原因补充:

(最多只允许输入30个字)