溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

c鏈表模擬筆記

發(fā)布時(shí)間:2020-04-10 18:33:32 來(lái)源:網(wǎng)絡(luò) 閱讀:352 作者:dlb15736130376 欄目:編程語(yǔ)言
//鏈表操作
#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;
	}
}


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI