【数据结构】单链表的C语言实现及其基本操作

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。

链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
在这里插入图片描述

定义结构

typedef struct LINK//定义结构链表
{
   
    int data;//数据域
    struct LINK *next;//指针域
}link;

初始化链表

link * initlink(){
   //初始化一个单链表
    link * p=(link*)malloc(sizeof(link));//创建头结点
    link * temp = p;//创建一个临时指针指向头结点
    for(int i=10;i>=1;i--){
   //创建一个1-10的单链表
        link *a = (link*)malloc(sizeof(link));//申请一个新节点
        a->data = i;
        a->next = NULL;//初始化新节点
        temp->next=a;
        temp = temp->next;//临时指针指向下一个
    }
    return p;
}

遍历输出链表

void putout(link *p){
   //遍历输出链表
    link *temp = p;
    while(temp->next){
   
        temp = temp->next;
        printf("%d ",temp->data);
    }
    printf("\n");
}

按序查找元素

int finddata(link *p,int i){
   //按序查找元素的位置,i为要查找的值
    link *temp = p;
    int j = 0;
    while(j<i && temp){
   
        temp = temp->next;
        j++;
    }
    return temp->data;
}

插入

link * insertelme(link *p,int loc,int elem){
   //插入元素,loc为位置,elem为元素的值
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值