国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能

這篇具有很好參考價(jià)值的文章主要介紹了【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

君兮_的個(gè)人主頁(yè)

勤時(shí)當(dāng)勉勵(lì) 歲月不待人

C/C++ 游戲開(kāi)發(fā)

Hello,米娜桑們,這里是君兮_,我們接著之前講過(guò)的順序表來(lái)繼續(xù)介紹初階數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,今天給大家?guī)?lái)的是有關(guān)鏈表的基本知識(shí)和各種接口功能的實(shí)現(xiàn)
好了,廢話不多說(shuō),開(kāi)始今天的學(xué)習(xí)吧!

一.鏈表的基礎(chǔ)知識(shí)

1.鏈表的概念與基本結(jié)構(gòu)

  • 概念:鏈表是一種物理存儲(chǔ)結(jié)構(gòu)上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的 。
  • 鏈表鏈表,表如其名,鏈表的結(jié)構(gòu)就如同被連接起來(lái)了,只不過(guò)在中間連接鏈表的“繩索”是指針。
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
  • 從基本結(jié)構(gòu)圖中我們可以看出:
    1.鏈?zhǔn)浇Y(jié)構(gòu)在邏輯上是連續(xù)的,但與順序表不同,在物理上鏈表是不一定連續(xù)的
    2.現(xiàn)實(shí)中,鏈表的節(jié)點(diǎn)一般都是從堆上申請(qǐng)出來(lái)的。
    3.從堆上申請(qǐng)的空間,是按照一定的策略來(lái)分配的,兩次申請(qǐng)的空間可能連續(xù),也可能不連續(xù)。

2.鏈表的分類

  • 在實(shí)際中鏈表的結(jié)構(gòu)非常多樣,下面就簡(jiǎn)單的介紹幾種
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

  • 雖然鏈表有多種結(jié)構(gòu),但是最常用的還是這兩種
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
  • 1. 無(wú)頭單向非循環(huán)鏈表:結(jié)構(gòu)簡(jiǎn)單,一般不會(huì)單獨(dú)用來(lái)存數(shù)據(jù)。實(shí)際中更多是作為其他數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),如哈希桶、圖的鄰接表等等。另外這種結(jié)構(gòu)在筆試面試中出現(xiàn)很多。
  • 2. 帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨(dú)存儲(chǔ)數(shù)據(jù)。實(shí)際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個(gè)結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實(shí)現(xiàn)以后會(huì)發(fā)現(xiàn)結(jié)構(gòu)會(huì)帶來(lái)很多優(yōu)勢(shì),實(shí)現(xiàn)反而簡(jiǎn)單了,后面我也會(huì)帶大家逐一實(shí)現(xiàn)代碼。

二.無(wú)頭單鏈表的實(shí)現(xiàn)

  • 由于我們是初階數(shù)據(jù)結(jié)構(gòu),且這是有關(guān)鏈表的第一篇博客,我們就先從最簡(jiǎn)單的無(wú)頭單鏈表開(kāi)始實(shí)現(xiàn)。
  • 首先我們先把需要的幾個(gè)功能的接口列出來(lái)然后咱們來(lái)一個(gè)一個(gè)介紹。

說(shuō)明:以下包括后面的所有代碼的函數(shù)名稱等都是我根據(jù)該函數(shù)的功能編的,也就是說(shuō)這些函數(shù)名等不唯一,你也可以起別的名字,不影響鏈表的使用,但就像給孩子取名一樣,我們都不希望我們的孩子的名字叫狗蛋,二狗子什么的,實(shí)際上,在函數(shù)的命名中你瞎起名字就和這些差不多,因此我建議無(wú)論是現(xiàn)在還是以后的函數(shù)的命名最好都按照功能來(lái)命名,這樣既增加了代碼的可讀性,也讓人一看便知各個(gè)函數(shù)的功能。

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef int SLTDataType;
typedef struct SListNode
{
    SLTDataType Data;
    struct SListNode * next;

}SLTNode;
//打印鏈表
void SLTPrint(SLTNode* phead);
//初始化鏈表
SLTNode* BuySListNode(SLTDataType x);
void SLTPushBack(SLTNode** pphead, SLTDataType x);
void SLTPushFront(SLTNode** pphead, SLTDataType x);

void SLTPopBack(SLTNode** pphead);
void SLTPopFront(SLTNode** pphead);
// 找某個(gè)數(shù)
SLTNode* SLTFind(SLTNode* phead, SLTDataType x);

// 在pos之前插入x
void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x);

// 在pos以后插入x
void SLTInsertAfter(SLTNode* pos, SLTDataType x);

// 刪除pos位置
void SLTErase(SLTNode** pphead, SLTNode* pos);

// 刪除pos的后一個(gè)位置
void SLTEraseAfter(SLTNode* pos);
//修改pos位置的值
void SLTModify(SLTNode**pphead, SLTNode* pos, SLTDataType x);
// 單鏈表的銷毀
void SListDestroy(SLTNode** pphead);
  • 注意:對(duì)接口的聲明都包含在頭文件中
  • 先講一下這里面需要注意的幾個(gè)地方:
  • 1.第一處的 typedef 實(shí)際是為了方便我們的使用,因?yàn)槲覀円膊恢牢覀兊逆湵硎怯脕?lái)存儲(chǔ)什么類型的數(shù)據(jù)的,因此我們這里就定義一個(gè)SLDataType,下面的代碼中統(tǒng)一把數(shù)據(jù)類型用它來(lái)代替,這樣一來(lái),我們以后想要改變存儲(chǔ)的數(shù)據(jù)類型,只需要改動(dòng)這里即可,比如我們現(xiàn)在想要存儲(chǔ)double類型的數(shù)據(jù)
typedef double SLDataType;
  • 2.關(guān)于我們的鏈表的結(jié)構(gòu)體
typedef struct SListNode
{
    SLTDataType Data;
    struct SListNode * next;

}SLTNode;
  • 我們說(shuō)了,我們的鏈表的連接是通過(guò)指針來(lái)實(shí)現(xiàn)的,因此我們的結(jié)構(gòu)體中第一個(gè)成員是該節(jié)點(diǎn)存儲(chǔ)的值,第二個(gè)成員則是一個(gè)該結(jié)構(gòu)體的指針,指向的是下一個(gè)節(jié)點(diǎn)的地址。

1.初始化鏈表 BuySListNode

  • 當(dāng)我們想使用我們的鏈表時(shí),首先就像變量一樣需要先把它初始化一下
//初始化鏈表
SLTNode* BuySListNode(SLTDataType x)
{
    SLTNode* newnode = (SLTNode*)malloc(sizeof(SLTNode));
    if (newnode == NULL)
    {
        perror("malloc failed:");
        exit(-1);
    }
    newnode->Data = x;
    newnode->next = NULL;
    return newnode;

}
  • 我們首先通過(guò)malloc為我們鏈表的一個(gè)節(jié)點(diǎn)開(kāi)辟了空間,然后通過(guò)perror判斷了我們的malloc是否成功,如果成功,我們就把該鏈表的值置為我們輸入的x,由于此時(shí)只有它一個(gè)節(jié)點(diǎn),因此next置空,這樣我們的一個(gè)節(jié)點(diǎn)就初始化好了。

2.打印鏈表 SLTPrint

  • 當(dāng)我們初始化成功后,我們就想把我們的鏈表打印一下,看看我們的鏈表是否成功初始化了,因此我們繼續(xù)來(lái)寫打印鏈表的函數(shù)
//打印鏈表
void SLTPrint(SLTNode* phead)
{
    SLTNode* cur = phead;
    while (cur)
    {
        printf("%d->", cur->Data);
        cur = cur->next;
    }
    printf("NULL\n");
}
  • 我們定義了一個(gè)結(jié)構(gòu)體指針cur指向傳入的鏈表的表頭,當(dāng)cur不為空時(shí),我們就打印一下此時(shí)該節(jié)點(diǎn)中的Data,并通過(guò)next找到下一個(gè)節(jié)點(diǎn)
  • 由于我們鏈表的最后一個(gè)元素是NULL,因此我們最后把鏈表中所有節(jié)點(diǎn)都打印完后,在最后再補(bǔ)上一個(gè)NULL。

【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

  • 效果如上圖

3.頭插 SLTPushFront與頭刪 SLTPopFront

  • 頭插與頭刪顧名思義,就是在鏈表表頭插入節(jié)點(diǎn)或者刪除鏈表表頭的節(jié)點(diǎn)

頭插

//頭插
void SLTPushFront(SLTNode** pphead, SLTDataType x)
{
    SLTNode* newnode = BuySListNode(x);
    newnode->next = *pphead;
    *pphead = newnode;
}
  • 頭插的邏輯圖是這樣的
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

頭刪

//頭刪
void SLTPopFront(SLTNode** pphead)
{
    //空
    assert(*pphead);
    //非空;
    SLTNode* newhead = (*pphead)->next;//保存一下下一個(gè)節(jié)點(diǎn)的地址
    free(*pphead);
    *pphead = newhead;
}
  • 頭刪的邏輯圖
  • 首先先判斷*pphead是否為空,如果為空,說(shuō)明這個(gè)鏈表壓根不存在
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

4.尾插SLTPushBack和尾刪 SLTPopBack

  • 與前面同理,尾插和尾刪是作用于鏈表的最后的

尾插

//尾插
void SLTPushBack(SLTNode** pphead, SLTDataType x)
{
    SLTNode* newnode = BuySListNode(x);
    SLTNode* tail = *pphead;
    //鏈表中沒(méi)有節(jié)點(diǎn)時(shí)
    if (*pphead == NULL)
    {
        *pphead = newnode;
    }
    else
    {
        //不為空時(shí)
        while (tail->next)
        {
            tail = tail->next;
        }
        tail->next = newnode;

    }
}
  • 我們知道鏈表的最后一個(gè)節(jié)點(diǎn)的next存放的地址為空,我們來(lái)通過(guò)邏輯圖分析一下
  • 首先還是特殊情況,當(dāng)我們的鏈表中沒(méi)有節(jié)點(diǎn)時(shí),那我們就把頭指針直接指向需要插入的節(jié)點(diǎn)就行。
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

尾刪

//尾刪
void SLTPopBack(SLTNode** pphead)
{
    //為空
    assert(*pphead);
    //只有一個(gè)節(jié)點(diǎn)
    if ((*pphead)->next == NULL)
    {
        free(*pphead);
        *pphead = NULL;
    }
    //不為空且有多個(gè)節(jié)點(diǎn)
    else
    {
        SLTNode* tail = *pphead;
        while (tail->next->next)
        {
            tail = tail->next;
        }
        free(tail->next);
        tail->next = NULL;


    }
}
  • 還是先來(lái)分析特殊情況,先通過(guò)assert斷言來(lái)判斷一下該鏈表是否為空,其次,如果這個(gè)鏈表只有一個(gè)節(jié)點(diǎn)時(shí),我們指向把該節(jié)點(diǎn)free釋放掉再置空即可,不需要其他操作。
  • 一般情況的邏輯圖
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++
    【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++

總結(jié)

  • 由于篇幅有限,今天的內(nèi)容到這里就結(jié)束了,之后我們會(huì)把剩下沒(méi)講的接口講完然后再帶大家做幾道oj題讓大家更加熟悉鏈表的使用。相信如果你能一直跟著堅(jiān)持下去那么你鏈表這一塊的初階知識(shí)就一定沒(méi)什么問(wèn)題啦!切記要自己上手敲敲代碼哦!

  • 好了,如果你有任何疑問(wèn)歡迎在評(píng)論區(qū)或者私信我提出,大家下次再見(jiàn)啦!

新人博主創(chuàng)作不易,如果感覺(jué)文章內(nèi)容對(duì)你有所幫助的話不妨三連一下這個(gè)新人博主再走唄。你們的支持就是我更新的動(dòng)力?。。?/font>

**(可莉請(qǐng)求你們?nèi)B支持一下博主?。?!點(diǎn)擊下方評(píng)論點(diǎn)贊收藏幫幫可莉吧)**

【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能,初階數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),鏈表,c語(yǔ)言,c++文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-622746.html

到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)】圖文并茂,通過(guò)邏輯圖帶你輕松拿捏鏈表,實(shí)現(xiàn)各種接口功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Activiti7(圖文并茂)

    Activiti7(圖文并茂)

    Activiti 是由 jBPM (BPM,Business Process Management 即業(yè)務(wù)流程管理) 的創(chuàng)建者 Tom Baeyens 離開(kāi) JBoss 之后建立的項(xiàng)目,構(gòu)建在開(kāi)發(fā) jBPM 版本 1 到 4 時(shí)積累的多年經(jīng)驗(yàn)的基礎(chǔ)之上,旨在創(chuàng)建下一代的 BPM 解 決方案。 Activiti 作為一個(gè)開(kāi)源的工作流引擎,它實(shí)現(xiàn)了BPMN 2.0規(guī)范,可以發(fā)布設(shè)計(jì)

    2024年02月06日
    瀏覽(90)
  • RabbitMQ入門篇【圖文并茂,超級(jí)詳細(xì)】

    RabbitMQ入門篇【圖文并茂,超級(jí)詳細(xì)】

    接下來(lái)看看由輝輝所寫的關(guān)于RabbitMQ的相關(guān)操作吧 目錄 ????Welcome 的Huihui\\\'s Code World ! !???? 前言 1.什么是MQ 2.理解MQ 3.生活案例分析與理解 4.MQ的使用場(chǎng)景 (1)解耦 傳統(tǒng)模式 中間件模式 (2)削峰 傳統(tǒng)模式 中間件模式 (3)異步 ?傳統(tǒng)模式 中間件模式 5.常見(jiàn)的MQ 一.?Rab

    2024年01月20日
    瀏覽(95)
  • secureCRT安裝和使用教程【圖文并茂】

    secureCRT安裝和使用教程【圖文并茂】

    簡(jiǎn)介 一般而言,嵌入式開(kāi)發(fā)板使用串口來(lái)監(jiān)控后臺(tái)??梢允褂么诰€連接開(kāi)發(fā)板和電腦,對(duì)于沒(méi)有串口的筆記本電腦來(lái)說(shuō),一般還需要一根USB轉(zhuǎn)串口線。 串口線 串口軟件多種多樣,比如secureCRT、Xshell、超級(jí)終端、miniCom、putty等,它們的功能大同小異,因此只需安裝用的順手

    2024年02月03日
    瀏覽(91)
  • 發(fā)送圖文并茂的html格式的郵件

    發(fā)送圖文并茂的html格式的郵件

    本文介紹如何生成和發(fā)送包含圖表和表格的郵件,涉及echarts圖表轉(zhuǎn)換為圖片、圖片內(nèi)嵌到html郵件內(nèi)容中、html郵件內(nèi)容生成、郵件發(fā)送方法等 因?yàn)閔tml格式的郵件不支持echarts,也不支持js執(zhí)行,所以圖表需要轉(zhuǎn)換為圖片內(nèi)嵌在郵件內(nèi)容中 因?yàn)槠脚_(tái)首頁(yè)相關(guān)統(tǒng)計(jì)都是使用echarts渲

    2024年02月11日
    瀏覽(22)
  • 歸并排序Java版(圖文并茂思路分析)

    工作原理是將一個(gè)大問(wèn)題分解成小問(wèn)題,再將小問(wèn)題分解成更小的。(乍一看就覺(jué)得是像一個(gè)遞歸)就像下圖這樣。然后不斷的將其一份為二,分解成更小的排序。 我們?cè)O(shè)一個(gè)函數(shù)叫MergeSort(arr,l,r)意思就是將arr數(shù)組下標(biāo)為[ l ,r ]之間的數(shù)進(jìn)行排序。 那么就開(kāi)始不斷的

    2024年02月06日
    瀏覽(26)
  • Java 線程池詳解,圖文并茂,還有誰(shuí)不會(huì)?!

    Java 線程池詳解,圖文并茂,還有誰(shuí)不會(huì)?!

    來(lái)源:blog.csdn.net/mu_wind/article/details/113806680 我們知道,線程的創(chuàng)建和銷毀都需要映射到操作系統(tǒng),因此其代價(jià)是比較高昂的。出于避免頻繁創(chuàng)建、銷毀線程以及方便線程管理的需要,線程池應(yīng)運(yùn)而生。 降低資源消耗 :線程池通常會(huì)維護(hù)一些線程(數(shù)量為 corePoolSize),這些線

    2024年02月06日
    瀏覽(94)
  • NodeMCU ESP8266開(kāi)發(fā)流程詳解(圖文并茂)

    NodeMCU ESP8266開(kāi)發(fā)流程詳解(圖文并茂)

    NodeMCU ESP8266基于Arduino IDE的開(kāi)發(fā)相對(duì)來(lái)說(shuō)還是比較容易上手的,我們基本需要以下幾個(gè)東西; 一臺(tái)安裝好Arduino IDE的PC,并且已經(jīng)部署環(huán)境(安裝好開(kāi)發(fā)板的串口驅(qū)動(dòng)); NodeMCU ESP8266 開(kāi)發(fā)板; USB線(根據(jù)實(shí)際開(kāi)發(fā)板的情況,本文需要Micro-USB的線); 具體如下圖所示; 本文默

    2024年02月06日
    瀏覽(91)
  • 什么是感知機(jī)——圖文并茂,由淺入深

    什么是感知機(jī)——圖文并茂,由淺入深

    生活中常常伴隨著各種各樣的邏輯判斷,比如看到遠(yuǎn)方天空中飄來(lái)烏云,打開(kāi)手機(jī)看到天氣預(yù)報(bào)說(shuō)1小時(shí)后40%的概率下雨,此時(shí)時(shí)候我們常常會(huì)做出等會(huì)下雨,出門帶傘的判斷。 上述思考過(guò)程可以抽象為一個(gè)”與“的”神經(jīng)邏輯“。當(dāng)”看到烏云“和”天氣預(yù)報(bào)40%下雨“同時(shí)

    2023年04月20日
    瀏覽(24)
  • Flutter 圖文并茂:打造交互豐富的應(yīng)用界面

    Flutter作為一種現(xiàn)代的UI工具包,為開(kāi)發(fā)者提供了豐富的工具和小部件,輕松構(gòu)建漂亮、響應(yīng)迅速的應(yīng)用界面。本篇博客將帶你踏入Flutter的世界,學(xué)習(xí)如何巧妙運(yùn)用圖片、按鈕、圖標(biāo),以及行與列進(jìn)行布局,打造令人驚艷的用戶交互體驗(yàn)。 無(wú)論你是Flutter初學(xué)者還是有一定經(jīng)驗(yàn)

    2024年02月03日
    瀏覽(16)
  • NodeMCU ESP8266 GPIO使用詳解(圖文并茂)

    NodeMCU ESP8266 GPIO使用詳解(圖文并茂)

    前面的文章中我們已經(jīng)學(xué)習(xí)了如何點(diǎn)亮一個(gè)LED燈,在嵌入式的世界里,這個(gè)相當(dāng)于我們初學(xué)一門編程語(yǔ)言,寫下的Hello World程序。 為了讓LED閃爍,我們需要操作芯片的GPIO,這是硬件最底層的概念,只不過(guò) Arduino 的編程中,底層的庫(kù)函數(shù)已經(jīng)為我們做好了硬件的封裝,只要調(diào)用

    2024年02月03日
    瀏覽(625)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包