指针写的,有木有大佬看看啥问题,就对了一个点
查看原帖
指针写的,有木有大佬看看啥问题,就对了一个点
1229013
Mr_LiuXinan楼主2024/3/9 00:42

代码如下:

#include <iostream>
using namespace std;
#include <unordered_map>

int n, m, zb, lr;
struct link
{
    int id;
    link *last;
    link *next;
};
unordered_map<int, link *> um;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);

    cin >> n;
    link *pHead = new link;
    link *tail = new link;

    link *a1 = new link;
    pHead->next = a1;
    a1->id = 1;
    a1->last = pHead;
    a1->next = tail;
    tail->last = a1;
    um[1] = a1;
    for (int i = 2; i <= n; ++i)
    {
        link *ai = new link;
        ai->id = i;
        cin >> zb >> lr;
        if (lr)
        {
            ai->next = um[zb]->next;
            ai->last = um[zb];
            um[zb]->next->last = ai;
            um[zb]->next = ai;
        }
        else
        {
            ai->next = um[zb];
            ai->last = um[zb]->last;
            um[zb]->last->next = ai;
            um[zb]->last = ai;
        }
        um[i] = ai;
    }

    cin >> m;
    for (int i = 1; i < m; ++i)
    {
        cin >> zb;
        um[zb]->last->next = um[zb]->next;
        um[zb]->next->last = um[zb]->last;
        delete um[zb];
    }

    for (link *p = pHead->next; p != tail; p = p->next)
        cout << p->id << " ";

    return 0;
}
2024/3/9 00:42
加载中...