欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++鏈表節(jié)點(diǎn)的添加和刪除介紹

 更新時(shí)間:2022年01月10日 08:58:12   作者:與C決戰(zhàn)的小蘿卜頭  
大家好,本篇文章主要講的是C++鏈表節(jié)點(diǎn)的添加和刪除介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

前言

鏈表是一種動(dòng)態(tài)的數(shù)據(jù)結(jié)構(gòu),因?yàn)樵趧?chuàng)建鏈表時(shí),不需要知道鏈表的長度,只需要對指針進(jìn)行操作。

1. 節(jié)點(diǎn)的創(chuàng)建

鏈表的節(jié)點(diǎn)包括兩部分,分別是:數(shù)據(jù)域和(指向下一個(gè)節(jié)點(diǎn)的)指針域。

struct Node {
	int data;
	struct Node* next;
};

2. 鏈表的定義

struct Node* createList() {
	//創(chuàng)建一個(gè)指針來表示表頭
	struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
	headNode->next = NULL;
	return headNode;
}

3. 創(chuàng)建節(jié)點(diǎn)

struct Node* createNode(int data) {
	//創(chuàng)建一個(gè)新的指針節(jié)點(diǎn)
	struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
	//結(jié)構(gòu)體變量初始化
	newNode->data = data;
	newNode->next = NULL;
	return newNode;
}

4. 節(jié)點(diǎn)的插入

節(jié)點(diǎn)的插入分為三種:頭插法、尾插法、在鏈表中間插入節(jié)點(diǎn)。

 4.1 頭插法

頭插法,顧名思義就是在鏈表的第一個(gè)節(jié)點(diǎn)插入一個(gè)節(jié)點(diǎn)。

解決方法:讓新插入的節(jié)點(diǎn)的next指針指向鏈表的頭結(jié)點(diǎn)即可。

void insertNodeByHead(struct Node* headNode, int data) {
	struct Node* newNode = createNode(data);
	newNode->next = headNode->next;
	headNode->next = newNode;
}

 4.2 尾插法

尾插法,顧名思義就是在鏈表的末尾增加一個(gè)節(jié)點(diǎn)。

解決思路:首先找到鏈表的最后一個(gè)節(jié)點(diǎn);然后讓最后的節(jié)點(diǎn)的next指針指向要插入的這個(gè)節(jié)點(diǎn),插入的節(jié)點(diǎn)的next指針指向NULL即可。

void insertNodeByTail(struct Node* headNode, int data) {
	struct Node* newNode = createNode(data);
	while (headNode->next != NULL)
	{
		headNode = headNode->next;//找到最后一個(gè)節(jié)點(diǎn)
	}
	headNode->next = newNode;
	newNode->next = NULL;
}

 4.3 插入中間節(jié)點(diǎn)

插入中間節(jié)點(diǎn):即在數(shù)據(jù)為 i 的節(jié)點(diǎn)后面添加新的節(jié)點(diǎn)。

解決思路:首先判斷數(shù)據(jù)為 i 的節(jié)點(diǎn)posNode是否在鏈表中存在;然后從第一個(gè)節(jié)點(diǎn)開始查找節(jié)點(diǎn)posNode。找到后就讓插入的節(jié)點(diǎn)的next指針指向posNode的下一個(gè)節(jié)點(diǎn),posNode的next指針指向新插入的節(jié)點(diǎn)即可。

void insertNodeByCenter(struct Node* headNode, int data, int i) {
	struct Node* posNode = headNode;
	/*struct Node* posNodeFront = headNode;*/
	struct Node* newNode = createNode(data);
	if (posNode == NULL) {
		printf("無法查找此數(shù)據(jù),鏈表為空\n");
	}
	else {
		while (posNode->data != i) {
			posNode = posNode->next;//前面位置到達(dá)了后面節(jié)點(diǎn)的位置
			/*posNode = posNodeFront->next;*///后面位置變成了原來位置的下一個(gè)
			if (posNode == NULL) {
				printf("未找到此數(shù)據(jù)\n");
				break;
			}
		}
		newNode->next = posNode->next;
		posNode->next = newNode;
	}
}

 總結(jié)

到此這篇關(guān)于C++鏈表節(jié)點(diǎn)的添加和刪除介紹的文章就介紹到這了,更多相關(guān)C++鏈表節(jié)點(diǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言container of()函數(shù)案例詳解

    C語言container of()函數(shù)案例詳解

    這篇文章主要介紹了C語言container of()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 在C++?中慎用setjmp和longjmp解析

    在C++?中慎用setjmp和longjmp解析

    setjmp和longjmp是C語言中用于實(shí)現(xiàn)非局部跳轉(zhuǎn)的函數(shù),setjmp和longjmp 是 C 語言中一個(gè)很強(qiáng)大的函數(shù),這篇文章主要介紹了在C++?中慎用setjmp和longjmp的相關(guān)知識,需要的朋友可以參考下
    2023-06-06
  • Opencv繪制最小外接矩形、最小外接圓

    Opencv繪制最小外接矩形、最小外接圓

    這篇文章主要為大家詳細(xì)介紹了Opencv繪制最小外接矩形、最小外接圓的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 淺談返回函數(shù)內(nèi)部new分配的內(nèi)存的引用

    淺談返回函數(shù)內(nèi)部new分配的內(nèi)存的引用

    下面小編就為大家?guī)硪黄獪\談返回函數(shù)內(nèi)部new分配的內(nèi)存的引用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實(shí)現(xiàn)介紹

    數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實(shí)現(xiàn)介紹

    大家好,本篇文章主要講的是數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實(shí)現(xiàn)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2021-12-12
  • c++統(tǒng)計(jì)文件中字符個(gè)數(shù)代碼匯總

    c++統(tǒng)計(jì)文件中字符個(gè)數(shù)代碼匯總

    本文給大家匯總介紹了3種使用C++實(shí)現(xiàn)統(tǒng)計(jì)文件中的字符個(gè)數(shù)的方法,非常的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-09-09
  • C指針原理教程之語法樹及其實(shí)現(xiàn)

    C指針原理教程之語法樹及其實(shí)現(xiàn)

    本文給大家分享的是如何使用C語言的指針原來來實(shí)現(xiàn)語法樹,并給大家提供了詳細(xì)的實(shí)例代碼,希望大家能夠喜歡
    2019-02-02
  • C語言學(xué)籍管理系統(tǒng)源代碼

    C語言學(xué)籍管理系統(tǒng)源代碼

    這篇文章主要為大家詳細(xì)介紹了C語言學(xué)籍管理系統(tǒng)源代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C/C++?QT實(shí)現(xiàn)解析JSON文件的示例代碼

    C/C++?QT實(shí)現(xiàn)解析JSON文件的示例代碼

    JSON是一種輕量級的數(shù)據(jù)交換格式,它是基于ECMAScript的一個(gè)子集,使用完全獨(dú)立于編程語言的文本格式來存儲和表示數(shù)據(jù)。這篇文章主要介紹了QT實(shí)現(xiàn)解析JSON文件的示例代碼,需要的可以參考一下
    2022-01-01
  • C語言實(shí)現(xiàn)航班訂票系統(tǒng)

    C語言實(shí)現(xiàn)航班訂票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)航班訂票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論