单链表的定义、表示及操作(一)

一、链式存储结构的特点

用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,每个结点都必须有指针域。

二、单链表

1.定义:每一个结点只含有一个指针域的链式结构称为单链表。
2.单链表结点的类型定义:

typedef struct Lnode{
      int data;    //数据域
      struct Lnode *next; //指针域
}Lnode,*LinkList;

3、关于带头节点的单链表及不带头节点的单链表
(1)带头节点的单链表为空时:L->next==NULL;
(2)不带头节点的单链表为空时:L=NULL;

三、单链表的基本操作

1、单链表中获取一个元素
(1)找第i个结点

GetElem(LinkList L,int i,int e)
{
    int j;
    LinkList p;
    p=L->next;j=1;//p指向第一个结点,j为计数器
    i=3;  //假设需要找第3个结点
    while(p&&j<i)  //当p指针不为空并且还未到达第i个结点
    {
      p=p->next;  //p指向下一个结点
      j++;    //计数器加一
    }
   if(!p||j>i)
   return ERROR;//第i个元素不存在
   else e=p->data;
   return OK;
}

(2)找值为x的元素

GetElem(LinkList L,int x,int e)
{
      while(p&&p->data!=x)
      {
         p=p_>next;
      }
      if(!p)
      return ERROR;//不存在值为x的结点
      else e=p->data;
      return OK;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值