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