C++簡(jiǎn)單單向鏈表實(shí)現(xiàn)-創(chuàng)新互聯(lián)

#include?"pch.h"
#include?<iostream>


//創(chuàng)建鏈表
typedef?struct?ListTable?
{
	int?nElement;????//鏈表元素
	int?nSequence;???//節(jié)點(diǎn)序號(hào)
	ListTable?*pNext;//下一個(gè)節(jié)點(diǎn)
}ListTable;


//初始化鏈表
//參數(shù):元素的值
ListTable*?initListTable(int?nNum)
{
	//頭結(jié)點(diǎn)
	ListTable?*head;
	//申請(qǐng)內(nèi)存
	head?=?(ListTable*)malloc(sizeof(ListTable));
	//初始化成員變量
	head->nElement?=?nNum;
	head->nSequence?=1;
	head->pNext?=?NULL;
	//返回頭結(jié)點(diǎn)指針
	return?head;
}


//插入元素
//參數(shù):鏈表指針?元素的值
void?insertElement(ListTable?*list,?int?nNum)
{
	//創(chuàng)建局部變量
	ListTable?*pList?=?list;
	int?nCount?=?list->nSequence;
	//申請(qǐng)新的節(jié)點(diǎn)空間
	ListTable?*pNode?=?(ListTable*)malloc(sizeof(ListTable));
	//遍歷鏈表
	while?(pList?!=?NULL)
	{
		//如果下一個(gè)節(jié)點(diǎn)為空,則插入元素
		if?(pList->pNext?==NULL)
		{
			pList->pNext?=?pNode;
			pNode->nSequence?=?nCount?+?1;
			pNode->nElement?=?nNum;
			pNode->pNext?=?NULL;
			return;
		}
		nCount?+=?1;
		pList?=?pList->pNext;
	}
}


//刪除指定序號(hào)元素
//參數(shù):鏈表指針??元素序號(hào)
void?deleteElement(ListTable?*list,int?nSequence)
{
	//如果是第一個(gè)節(jié)點(diǎn),直接free
	if?(list->nSequence?==?nSequence)
	{
		free(list);
		return;
	}

	//創(chuàng)建局部變量
	ListTable?*pList?=?list;
	ListTable?*pTmp=NULL;
	
	//遍歷鏈表
	while?(pList!=NULL)
	{
		//如果序號(hào)相等,刪除指定序號(hào)元素
		if?(pList->pNext->nSequence?==?nSequence)
		{
			pTmp?=?pList->pNext->pNext;
			free(pList->pNext);
			pList->pNext?=?pTmp;
			//之后的序號(hào)依次減一
			while?(pTmp?!=?NULL)
			{
				pTmp->nSequence?-=?1;
				pTmp?=?pTmp->pNext;
			}
			return;
		}
		pList?=?pList->pNext;	
	}
	printf("節(jié)點(diǎn)不存在!\n");
}


//修改元素
//參數(shù):鏈表指針??元素序號(hào)??元素的值
void?changeElement(ListTable?*list,?int?nSequence,int?nNum)
{
	ListTable?*pList?=?list;
	while?(pList?!=?NULL)
	{
		if?(pList->nSequence?==?nSequence)
		{
			pList->nElement?=?nNum;
			return;
		}
		pList?=?pList->pNext;
	}
	printf("節(jié)點(diǎn)不存在!\n");
}


//釋放鏈表
//參數(shù):鏈表指針
void?deleteListTable(ListTable?*list)
{
	ListTable?*pList?=?list;
	ListTable?*pTmp=NULL;
	while?(pList?!=?NULL)
	{
		pTmp=?pList->pNext;
		free(pList);
		pList?=?pTmp;
	}
	printf("釋放完成!\n");
}


//遍歷鏈表元素
//參數(shù):鏈表指針
void?showElement(ListTable?*list)
{
	ListTable?*pList?=?list;
	if?(pList?==?NULL)
	{
		printf("鏈表為空!\n");
		return;
	}
	while?(pList?!=?NULL)
	{
		printf("鏈表元素:%d??元素序號(hào):%d\n",?pList->nElement,?pList->nSequence);
		pList?=?pList->pNext;
	}
}


int?main()
{
	//初始化鏈表?第一個(gè)元素為1
	ListTable?*list=?initListTable(1);
	//插入2,3,4,5四個(gè)元素
	insertElement(list,?2);
	insertElement(list,?3);
	insertElement(list,?4);
	insertElement(list,?5);
	//修改序號(hào)5的元素為6
	changeElement(list,?5,?6);
	//刪除序號(hào)為3的元素
	deleteElement(list,?3);
	//遍歷
	showElement(list);
	//釋放
	deleteListTable(list);
}

vs2017編譯

成都創(chuàng)新互聯(lián)公司主營(yíng)福安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā),福安h5微信小程序搭建,福安網(wǎng)站營(yíng)銷(xiāo)推廣歡迎福安等地區(qū)企業(yè)咨詢(xún)

C++簡(jiǎn)單單向鏈表實(shí)現(xiàn)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站題目:C++簡(jiǎn)單單向鏈表實(shí)現(xiàn)-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article8/phhip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、微信公眾號(hào)、App開(kāi)發(fā)、建站公司、外貿(mào)建站網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管