數據結構之單鏈表(數組模擬)

在這裏插入圖片描述

const int MAXN = 100005;
int value[MAXN];    //保存鏈表中數,數據域
int ne[MAXN];       //指針域,ne[i]表示節點i的next指針
int head;           //頭結點,指向鏈表的首節點
int index;          //記錄當前存儲位置
//初始化
void init() {
    head = -1;  //-1表示指向空(null)
    index = 0;
}
//向鏈表頭插入一個數;
void insert(int x) {
    ne[index] = head;
    head = index;
    value[index++] = x;
}
// 刪除第k個插入的數後面的數;
void remove(int k) {
    if(!k) {    //刪除首節點
        head = ne[head];
    }else {
        ne[k-1] = ne[ne[k-1]];
    }
}
// 在第k個插入的數後插入一個數
void insert(int k, int x) {
    ne[index] = ne[k-1];
    ne[k-1] = index;
    value[index++] = x;
}
//打印鏈表
void print() {
    for(int i = head; i != -1; i = ne[i]) {
        cout << value[i] << ' ';
    }
    cout << endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章