欢迎光临
我们一直在努力

408数据结构算法-2015

#include <iostream>
#include <vector>

#define N 100

using namespace std;
struct LinkNode {
    int data;
    LinkNode *next;
};

void createLinkNode(LinkNode *link, vector<int> v) {
    LinkNode *head = link;
    for (int i: v) {
        LinkNode *temp = new LinkNode();
        temp->next = nullptr;
        temp->data = i;
        head->next = temp;
        head = head->next;
    }
}

void showLinkNode(LinkNode *link) {
    link = link->next;
    while (link != nullptr) {
        cout << link->data << " ";
        link = link->next;
    }
    cout << endl;
}

int abs(int a) {
    return a > 0 ? a : -a;
}

void delSameAbsNode(LinkNode *link) {
    LinkNode *head = link->next, *pre = link;
    bool flag[N];
    for (int i = 0; i < N; i++) {
        flag[i] = false;
    }
    while (head != nullptr) {
        if (flag[abs(head->data)]) { //出现过,删除当前节点
            pre->next = head->next;
        } else {
            flag[abs(head->data)] = true;
        }
        pre = head;
        head = head->next;
    }
}


int main() {
    vector<int> v = {21, -15, -15, -7, 15};
    LinkNode *head = new LinkNode();
    createLinkNode(head, v);
    showLinkNode(head);
    delSameAbsNode(head);
    showLinkNode(head);
}
未经允许不得转载:Caldow » 408数据结构算法-2015
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录  

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录