單鏈表的頭插、遍歷、刪除(c++)

頭文件

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

//創(chuàng)建一個節(jié)點
//先聲明一下list類
template <class T> class List;
template <class T>
class Node
{
    //對list類作友元
friend class List<T>;
private:
    //創(chuàng)建一個數(shù)據(jù)域
    T data;
    //創(chuàng)建一個指針域
    Node* link;
    //節(jié)點的構(gòu)造函數(shù)
    Node(T);
};
template <class T>
class List
{
public:
    //構(gòu)造函數(shù),初始化一下first指向0
    List() { first = 0; };
    //頭插
    void head_add(T);
    void show_list();
    void delete_node(T);
private:
    //設(shè)置鏈表最開始的指針
    Node<T> *first;
};
//節(jié)點的構(gòu)造函數(shù)
template<class T>
Node<T>::Node(T elem)
{
    data = elem;
    link = 0;
}
template<class T>
//頭插法
void List<T>::head_add(T k)
{
    //創(chuàng)建一個新的指針,開辟一個新的節(jié)點,把要插入的元素傳進(jìn)來
    Node<T>* new_node = new Node<T>(k);
    //?這個地方是吧new_node指向了first,first=0,所以是指向了first的0嗎?
    new_node->link = first;
    //?然后first又指向了new_node了嗎?
    first = new_node;
}
//show函數(shù)
template<class T>
void List<T>::show_list()
{
    //通過一個指針來從頭走到尾
    //定義一個指針,如果他不指向空,它等于它的下一個
    for (Node<T> *i = first;i; i = i->link)
    {
        //輸出當(dāng)前所指向的數(shù)據(jù)域
        cout << i->data;
        //如果它的下一個不為空輸出“->”
        if (i->link) cout << "->";
    }
    cout << endl;
}
template<class T>
void List<T>::delete_node(T k)
{
    Node<T>* pre = 0;
    Node<T>* cur;
    for (cur = first;cur && cur->data != k;pre = cur , cur = cur->link)
    {
        //空循環(huán)什么都不做,就找到那個元素
    }
    if (cur)
    {
        if (pre) pre->link = cur->link;
        else first = first->link;
        delete cur;
    }
}

源文件

#include<iostream>
using namespace std;
#include"單鏈表基本操作.h"

int main()
{
    List<int> l1;
    l1.head_add(5);
    l1.head_add(25);
    l1.head_add(35);
    l1.head_add(45);
    l1.show_list();

    l1.delete_node(45);
    l1.show_list();

    return 0;

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容