2.2 单链表头插法/尾插法初始化

LinkList.h

#pragma once
#include<iostream>
using namespace std;

class LNode {
    friend class LinkList;
private:
    int data;
    LNode* next;
};

class LinkList {
private:
    LNode* first;
public:
    LinkList() {
        first = new LNode();
        first->data = 666;
        first->next = nullptr;
    }
    void creatF(int arr[], int n) {
        LNode* s;
        LNode* p;
        p = first;
        for (int i = 0; i < n; i++) {
            s = new LNode();
            s->data = arr[i];
            s->next = p->next;
            p->next = s;
        }
    }
    void creatR(int arr[], int n) {
        LNode* s;
        LNode* p;
        p = first;
        for (int i = 0; i < n; i++) {
            while (p->next != nullptr) {
                p = p->next;
            }
            s = new LNode();
            s->data = arr[i];
            s->next = p->next;
            p->next = s;
        }
    }
    void show() {
        LNode* p;
        p = first->next;
        while (p!=nullptr) {
            cout << p->data << " ";
            p = p->next;
        }
        putchar('\n');
    }
};

main:

#include"LinkList.h"
int main() {
    LinkList L;
    int a[] = { 1,2,3,4,5 };
    int b[] = { 6,7,8,9,10 };
    L.creatF(a, 5);
    L.creatR(b, 5);
    L.show();
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/SlowIsFast/p/12454074.html