ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言链表实现(郝斌数链表学习笔记)

2021-11-05 13:01:48  阅读:146  来源: 互联网

标签:郝斌数 struct int list 结点 C语言 链表 PNODE pHead


#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
	int data ;//数据域

	struct Node * pNext; //指针域  这个指针域它指向的是跟它本身一样的数据类型的另一个节点 

}NODE,*PNODE; //NODE等价于struct Node		PNODE等价于struct Node*

PNODE create_list(void);

void traverse_list(PNODE pHead);

bool is_empty(PNODE pHead);

int length_list(PNODE);

bool insert_list(PNODE,int,int);

bool delete_list(PNODE,int ,int*);
//动态分配的内存

int main(int argc, char* argv[])
{
	PNODE pHead = NULL; //等价于struct Node * pHead = Null  头节点

	pHead = create_list();//create_list():创建一个非循环单链表,并将该链表的头节点的地址赋给pHead

	traverse_list(pHead);

	system("pause");

	return 0;
}

PNODE create_list(void)//返回类型为地址  PNODE = struct Node*
{
	int len;//用来存放有效结点的个数

	int i; 

	int val;//用来临时存放用户输入的结点的值

	//分配了一个不存放有效数据的头节点,不能叫头指针
	PNODE pHead = (PNODE)malloc(sizeof(NODE));//分配头节点的首地址给了pHead  PNODE = struct Node*
	if (NULL==pHead)
	{
		printf("分配失败,程序失败!");
		exit(-1);
	}
	PNODE pTail = pHead; //尾结点 初始化

	pTail->pNext = NULL; //用来清空尾结点的指针域

	printf("请输入您需要生成的链表节点的个数:len = \n");

	scanf("%d",&len);

	for( i = 0; i<len;++i)
	{
		printf("请输入第%d个节点的值",i+1);

		scanf("%d",&val);

		PNODE pNew = (PNODE)malloc(sizeof(NODE));//	PNODE等价于struct Node*

		if(NULL==pNew)
		{
		
			printf("分配失败,程序终止");
		}
		pNew->data =val;// 将变量值赋值到结点的数据域当中

		pTail->pNext = pNew; //将新的结点挂到尾结点

		pNew->pNext = NULL;

		pTail = pNew;

	}
	return pHead;
}
void traverse_list(PNODE pHead)
{ //链表不能用数组来遍历
	PNODE p = pHead->pNext; //p指向第一个有效结点

	while (NULL!=p)
	{
		printf("%d ",p->data);

		p = p->pNext;

	}
	printf("\n");
	return ;
	 
}

标签:郝斌数,struct,int,list,结点,C语言,链表,PNODE,pHead
来源: https://www.cnblogs.com/doubleconquer/p/15512703.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有