亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

鏈表是一種動態(tài)的數據結構,因為在創(chuàng)建鏈表時,不需要知道鏈表的長度,只需要對指針進行操作。

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

鏈表的節(jié)點包括兩部分,分別是:數據域和(指向下一個節(jié)點的)指針域。

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

2. 鏈表的定義

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

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

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

4. 節(jié)點的插入

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

 4.1 頭插法

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

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

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

 4.2 尾插法

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

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

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

 4.3 插入中間節(jié)點

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

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

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("無法查找此數據,鏈表為空\n");
	}
	else {
		while (posNode->data != i) {
			posNode = posNode->next;//前面位置到達了后面節(jié)點的位置
			/*posNode = posNodeFront->next;*///后面位置變成了原來位置的下一個
			if (posNode == NULL) {
				printf("未找到此數據\n");
				break;
			}
		}
		newNode->next = posNode->next;
		posNode->next = newNode;
	}
}

 總結

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

相關文章

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

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

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

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

    setjmp和longjmp是C語言中用于實現非局部跳轉的函數,setjmp和longjmp 是 C 語言中一個很強大的函數,這篇文章主要介紹了在C++?中慎用setjmp和longjmp的相關知識,需要的朋友可以參考下
    2023-06-06
  • Opencv繪制最小外接矩形、最小外接圓

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

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

    淺談返回函數內部new分配的內存的引用

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

    數據結構C語言鏈表的實現介紹

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

    c++統(tǒng)計文件中字符個數代碼匯總

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

    C指針原理教程之語法樹及其實現

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

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

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

    C/C++?QT實現解析JSON文件的示例代碼

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

    C語言實現航班訂票系統(tǒng)

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

最新評論