【创】数据结构与算法————链表byC语言【C语言网】

本文介绍了如何使用C语言创建和操作链表,包括头插法、尾插法等基本操作,是数据结构与算法学习的一部分。
摘要由CSDN通过智能技术生成

数据结构与算法————链表【C语言网】

http://data.biancheng.net/view/160.html

#include <stdio.h>
#include <stdlib.h>



//结构体
typedef struct Link{
   
	char elem; //代表数据域
	struct Link * next; //代表指针域,指向直接后继元素
}link; //link为节点名,每个节点都是一个 link 结构体

//链表的创建(初始化)

link * initLink(){
   
	link * p=NULL;//创建头指针
	link * temp = (link*)malloc(sizeof(link));//创建首元节点
	//首元节点先初始化
	temp->elem = 1;
	temp->next = NULL;
	p = temp;//头指针指向首元节点
	//从第二个节点开始创建
	for (int i=2; i<5; i++) {
   
	 //创建一个新节点并初始化
		link *a=(link*)malloc(sizeof(link));
		a->elem=i;
		a->next=NULL;
		//将temp节点与新建立的a节点建立逻辑关系
		temp->next=a;
		//指针temp每次都指向新链表的最后一个节点,其实就是 a节点,这里写temp=a也对
		temp=temp->next;
	}
	//返回建立的节点,只返回头指针 p即可,通过头指针即可找到整个链表
	return p;
}

//eg:创建一个存储 {1,2,3,4} 且含头节点的链表:

link * initLink(){
   
	link * p=(link*)malloc(sizeof(link));//创建一个头结点
	link * temp=p;//声明一个指针指向头结点,
	//生成链表
	for (int i=1; i<5; i++) {
   
		link *a=(link*)malloc(sizeof(link));
		a->elem=i;
		a->next=NULL;
		temp->next=a;
		temp=temp->next;
	}
	return p;
}

//输出代码

void display(link *p){
   
	link* temp=p;//将temp指针重新指向头结点
	//只要temp指针指向的结点的next不是Null,就执行输出语句。
	while (temp->next) {
   
		temp=temp->next;
		printf("%d",temp->elem);
	}
	printf("\n");
}

//完整代码:

#include <stdio.h>
#include <stdlib.h>
//链表中节点的结构
typedef struct Linklist{
   
	int  elem;
	struct Link *next;
}link;
//初始化链表的函数
link * initLink(){
   
	link * p=NULL;//创建头指针
	link * temp = (link*)malloc(sizeof(link));//创建首元节点
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值