温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

c链表模拟笔记

发布时间:2020-04-10 18:33:32 来源:网络 阅读:348 作者:dlb15736130376 栏目:编程语言
//链表操作
#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;
	}
}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI