栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言构建简单链表并遍历

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言构建简单链表并遍历

# include 
# include 
# include 
 


typedef struct Node //为  struct Node 定义了一个新名字 
{
	int data; //数据域
	struct Node * pNext; //指针域 
}NODE, *PNODE; //NODE等价于struct Node  PNODE等价于struct Node * 


  
//函数声明
PNODE create_list(void);
void traverse_list(PNODE pHead);
 
  int main (void) //主函数 
  {
  	PNODE pHead = NULL; //等价于struct Node *d = NULL; (指针初始化)
	   
  	pHead =  create_list(); //create_list()功能:创建一个非循环单链表,并将该链表的头节点的地址赋给pHead
	traverse_list(pHead); //对创建的链表进行遍历,需要接收头指针这个变量
	return 0; 
  }
 
 PNODE create_list(void) //相当于struct Node * create_list ,遍历的时候不需要返回值,用void 
  {
  	int len; //用来存放有效节点的个数 
  	int i;
  	int val; //用来临时存放用户输入的有效节点的值
  	//分配了一个不存放有效数据的头节点 
	PNODE pHead = (PNODE)malloc(sizeof(NODE));
	

	 
	if (NULL == pHead)  
	{
		printf("分配失败,程序终止!n");
		exit(-1);
	} 
	PNODE pTail = pHead;
	pTail->pNext = NULL;
	
  	printf("请输入您需要生成的链表结点个数:len = ");
  	scanf("%d",&len);
  	
  	for (i=0;idata = val; //新生成节点的数据域赋给了临时节点val 
	   //pHead->pNext = pNew; //把pNew挂到了pHead后面,错误:此时新生成的每一个节点都挂到了头节点上 
	   pTail->pNext = pNew; 
	   pNew->pNext = NULL; //初始化每一个节点 
    	pTail = pNew;
	   }
	 return pHead; 
  }
   void traverse_list(PNODE pHead)
   {
   	PNODE p = pHead->pNext;
   	while (NULL != p)
   	{
	   	printf("%d", p->data);
		   p = p->pNext;
	   }
	   printf("n");
	   return;
   }
   

可能废话的注释有点多hhhh 我注释上来巩固一下

(我用的是cfree写的)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号