#include?"pch.h" #include?<iostream> //創建鏈表 typedef?struct?ListTable? { int?nElement;????//鏈表元素 int?nSequence;???//節點序號 ListTable?*pNext;//下一個節點 }ListTable; //初始化鏈表 //參數:元素的值 ListTable*?initListTable(int?nNum) { //頭結點 ListTable?*head; //申請內存 head?=?(ListTable*)malloc(sizeof(ListTable)); //初始化成員變量 head->nElement?=?nNum; head->nSequence?=1; head->pNext?=?NULL; //返回頭結點指針 return?head; } //插入元素 //參數:鏈表指針?元素的值 void?insertElement(ListTable?*list,?int?nNum) { //創建局部變量 ListTable?*pList?=?list; int?nCount?=?list->nSequence; //申請新的節點空間 ListTable?*pNode?=?(ListTable*)malloc(sizeof(ListTable)); //遍歷鏈表 while?(pList?!=?NULL) { //如果下一個節點為空,則插入元素 if?(pList->pNext?==NULL) { pList->pNext?=?pNode; pNode->nSequence?=?nCount?+?1; pNode->nElement?=?nNum; pNode->pNext?=?NULL; return; } nCount?+=?1; pList?=?pList->pNext; } } //刪除指定序號元素 //參數:鏈表指針??元素序號 void?deleteElement(ListTable?*list,int?nSequence) { //如果是第一個節點,直接free if?(list->nSequence?==?nSequence) { free(list); return; } //創建局部變量 ListTable?*pList?=?list; ListTable?*pTmp=NULL; //遍歷鏈表 while?(pList!=NULL) { //如果序號相等,刪除指定序號元素 if?(pList->pNext->nSequence?==?nSequence) { pTmp?=?pList->pNext->pNext; free(pList->pNext); pList->pNext?=?pTmp; //之后的序號依次減一 while?(pTmp?!=?NULL) { pTmp->nSequence?-=?1; pTmp?=?pTmp->pNext; } return; } pList?=?pList->pNext; } printf("節點不存在!\n"); } //修改元素 //參數:鏈表指針??元素序號??元素的值 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("節點不存在!\n"); } //釋放鏈表 //參數:鏈表指針 void?deleteListTable(ListTable?*list) { ListTable?*pList?=?list; ListTable?*pTmp=NULL; while?(pList?!=?NULL) { pTmp=?pList->pNext; free(pList); pList?=?pTmp; } printf("釋放完成!\n"); } //遍歷鏈表元素 //參數:鏈表指針 void?showElement(ListTable?*list) { ListTable?*pList?=?list; if?(pList?==?NULL) { printf("鏈表為空!\n"); return; } while?(pList?!=?NULL) { printf("鏈表元素:%d??元素序號:%d\n",?pList->nElement,?pList->nSequence); pList?=?pList->pNext; } } int?main() { //初始化鏈表?第一個元素為1 ListTable?*list=?initListTable(1); //插入2,3,4,5四個元素 insertElement(list,?2); insertElement(list,?3); insertElement(list,?4); insertElement(list,?5); //修改序號5的元素為6 changeElement(list,?5,?6); //刪除序號為3的元素 deleteElement(list,?3); //遍歷 showElement(list); //釋放 deleteListTable(list); }
vs2017編譯
成都創新互聯公司主營福安網站建設的網絡公司,主營網站建設方案,成都app軟件開發,福安h5微信小程序搭建,福安網站營銷推廣歡迎福安等地區企業咨詢另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站題目:C++簡單單向鏈表實現-創新互聯
鏈接URL:http://vcdvsql.cn/article8/phhip.html
成都網站建設公司_創新互聯,為您提供網站導航、微信公眾號、App開發、建站公司、外貿建站、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯