您好,登錄后才能下訂單哦!
//鏈表操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h> //定義一個(gè)結(jié)構(gòu)體包含數(shù)據(jù)域和指針域,指針域存放下一個(gè)節(jié)點(diǎn)的地址 typedef struct Node{ int data; struct Node * pNextNode; }NODE,*PNODE; //創(chuàng)建一個(gè)鏈表,返回第一個(gè)節(jié)點(diǎn)的地址 PNODE createNodeLink(void); //遍歷鏈表,參數(shù)為第一個(gè)節(jié)點(diǎn)的地址 void traverseLinked(PNODE pHead); int main(void){ //創(chuàng)建鏈表 PNODE pHead = createNodeLink(); //遍歷鏈表 traverseLinked(pHead); getchar(); return 0; } //創(chuàng)建鏈表,,下一個(gè)創(chuàng)建的節(jié)點(diǎn)的pNextNode指向上一個(gè)創(chuàng)建的節(jié)點(diǎn),即從后往前創(chuàng)建 PNODE createNodeLink(void){ //中間變量,用于保存上一個(gè)節(jié)點(diǎn) PNODE pNodeTail = (PNODE)malloc(sizeof(NODE)); if(pNodeTail == NULL){ printf("分配失敗,程序終止!\n"); exit(-1); } int len = 7 ,i,val; i = 0; printf("請(qǐng)輸入您要生成的鏈表的節(jié)點(diǎn)的個(gè)數(shù):"); scanf("%d",&len); for(i = 0;i < len;i++){ printf("請(qǐng)輸入%d個(gè)節(jié)點(diǎn)的值:\n",i+1); scanf("%d",&val); PNODE pNew = (PNODE)malloc(sizeof(NODE)); if(pNew == NULL){ printf("分配失敗,程序終止!\n"); exit(-1); } pNew->data = val; if(i == 0){ pNew->pNextNode = NULL; }else{ pNew->pNextNode = pNodeTail; } pNodeTail = pNew; } //循環(huán)完成,pNodeTail剛好指向第一個(gè)節(jié)點(diǎn) return pNodeTail; } //遍歷鏈表 void traverseLinked(PNODE pHead){ PNODE pTemp = pHead; while(pTemp != NULL){ printf("%d\t",pTemp->data); pTemp = pTemp->pNextNode; } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。