单链表的操作

这篇博客介绍了如何使用C语言实现单链表的初始化、插入、删除、查找等基本操作。通过实验详细讲解了单链表的链式存储结构,并提供了相应的函数实现,包括建立、输出链表长度、获取第i个元素、查找元素位置、在指定位置插入和删除元素等功能。
摘要由CSDN通过智能技术生成

一、实验目的:

1、复习C语言程序设计中的知识。

2、掌握线性表的链式存储结构的表示和实现方法。

3、掌握单链表基本操作的算法实现。

二、实验内容:

1.建立单链表。

2.在单链表上实现插入、删除和查找等操作。

三、实验要求:

编写实现单链表的基本算法(初始化、查找、插入、删除等)的函数,并在此基础上设计一个主程序完成如下功能:

⑴初始化字符型单链表H;

⑵采用尾插法建立单链表H,如(a,b,c,d,c);

⑶输出单链表H的长度;

⑷输出单链表H的第i个元素,如输出单链表H的第3个元素;

⑸输出给定元素的位置,如输出元素a的位置;

⑹在第i个元素前插入给定元素,如在第4个元素前插入元素f;

⑺删除单链表H的第i个元素,如删除单链表H的第3个元素。

⑻输出单链表

四、实验步骤:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

// 单链表结构类型的定义

typedef int elemtype; /结点的数据类型设为整形/

typedef struct node /定义单链表结点类型/

{

elemtype data;
/结点的数据域/

struct
node *next; /结点的指针域/

}LinkList; /单链表的类型名为LinkList/

//LinkList *head,p; / head 是指向单链表类型LinkList的指针变量/

//1 初始化单链表

LinkList *Init_LinkList()

{

LinkList
*head; //

head
= (LinkList*)malloc(sizeof(LinkList)); //生成头结点指针

if
(head == NULL) //如果申请空间失败,返回空指针

{

  printf("初始化失败!\n");

  return

0;

}

else

{

  printf("初始化成功!\n");

  return

head;

}

}

//2 用尾插法建立单链表

LinkList *Creat_LinkListR(LinkList
*head)

{

elemtype
ix;

LinkList *p, tail;
/
*head,*tail 分别为头指针和尾指针 */

head->next
= NULL; /置头结点指针域为空/

tail
= head;

printf(“请输入数据直到遇0终止:\n”);

scanf("%d",
&ix); //输入第一个数据

while
(ix != 0)

{

  p

= (LinkList *)malloc(sizeof(LinkList));

  if

(p == NULL)

  {

     printf("新结点申请空间失败,无法继续建立单链表!\n");

     return

head;

  }

  p->data

= ix; /为新结点数据域赋值/

  tail->next

= p;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值