数据结构单链表——建立单链表

本文介绍了如何使用C语言实现头插法和尾插法创建单链表。头插法中,新节点总是被插入到链表头部;而尾插法中,新节点被追加到链表末尾。两种方法均以999作为输入结束标志,并提供了相应的主函数调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 0.建立单链表前的工作

#include<stdio.h>
#include<stdlib.h>
//定义结构体
typedef int Elemtype;
typedef struct LNode{
    Elemtype data;    //单链表结点中的数据域,用来存放数据
    LNode *next;      //单链表结点中的指针域,用来存放下一个结点的地址
}LNode,*Linklist;  

1.头插法建立单链表

Linklist Create_head(Linklist &L){
    LNode *s;    //定义s指针
    int x;       //用来保存数据
    L=(LNode*)malloc(sizeof(LNode));   //向内存申请开辟一个LNode类型大小的内存空间,L作为头结点
    L->next=NULL;    //将头指针的next置空
    scanf("%d",&x);
    while(x!=999){    //若输入为999则结束输入
        s=(Linklist)malloc(sizeof(LNode));    //向内存申请为s开辟一个LNode类型大小的内存空间
        s->data=x;            //将x的值赋值给s结点的数据域data
        s->next=L->next;      //s结点指向头结点的下一个结点
        L->next=s;            //再将头结点指向s结点
        scanf("%d",&x);        //再次输入数据
    }
    return L;    //返回L的地址
}

主函数调用

int main(){
	Linklist L;    //定义一个LNode类型的变量L
	Create_head(L);    //头插法创建单链表
	printlist(L);    //打印输出
	return 0;
}

 运行示例 

 

2.尾插法建立单链表

//尾插法建立单链表
Linklist Create_tail(Linklist& L) {
	int x;   
	L = (Linklist)malloc(sizeof(LNode));
	LNode*s,*r=L;    //与头插法不同的是需要定义一个尾指针r,r始终指向单链表中最后一个结点
	scanf("%d",&x);
	while (x!=999)
	{
		s = (LNode*)malloc(sizeof(LNode));
		s->data = x;    
		r->next=s;    //当前的尾结点指向s
		r = s;        //将s的值传给r,目的是将s作为当前的尾结点
		scanf("%d", &x);
	}
	r->next = NULL;    //插入完成后将r->next置空
	return L;
}

主函数调用

int main(){
	Linklist L;    //定义一个LNode类型的变量L
	Create_tail(L);    //尾插法创建单链表
	printlist(L);    //打印输出
	return 0;
}

 运行示例 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值