线性表之单链表基本操作(C语言实现,详细注释版)

这篇博客分享了作者用C语言实现的单链表基本操作代码,包括详细注释,旨在帮助读者理解单链表的实现。博主鼓励读者提问并指出代码可能的错误,同时希望得到读者的支持。
摘要由CSDN通过智能技术生成

有不懂的可以问我,把自己练习编写的代码在这里和大家分享下。如有错误欢迎指正。
编写不易,喜欢的话,点个赞吧😄!

#include <stdio.h>
#include <stdlib.h>
#define N 5
 
//链表节点单元
typedef struct Link{
   
	int value;//数据域 
	struct Link *next;//指针域 
}link;

/********************
函数 DisplayLink:依次输出链表成员信息
参数1 int HeadNode:0表示传入链表是含头节点的链表,1表示传入链表是不含头节点的链表  
参数2 link *L:链表L 
********************/ 
void DisplayLink(int HeadNode,link *L){
   
	if(!HeadNode)L=L->next;//如果存在头节点,头指针向后移动一位指向首元节点 
	//只要L指针指向的节点非Null,则打印链表成员。
	while(L){
   
		printf("%d ",L->value);
		L=L->next; 
	}
	printf("\n\n"); 
} 

/********************
函数 InitLink:初始化长度为len的链表
参数1 int HeadNode:0表示建立有头节点链表,1表示建立无头节点链表
参数2 link **L:链表L   
参数3 int len:链表容量 
********************/ 
int InitLink(int HeadNode,link **L,int len){
   
	link *p=NULL;//头指针 
	link *temp=(link *)malloc(sizeof(link));//临时指针,总是指向链表的最后一个节点 
	if(!temp){
   //如果节点申请失败 
		printf("链表初始化失败!\n\n");
		exit(1);//退出程序 
	}
	temp->value=HeadNode;//若是头节点,该节点数据写0;否则默认首元节点,写1 
	temp->next=NULL;//指针域默认置空,表示该节点为当前链表的最后一个节点 
	p=temp;//头指针指向链表的第一个节点
	for(int i=HeadNode+1;i<=len;i++){
   
		link *new_link=(link *)malloc(sizeof(link));//申请新节点 
		if(!new_link){
   
			
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值