单链表的基本操作

一、 单链表的初始化(带头结点)

     算法步骤:

  1. 生成新结点作头结点,用头指针L指向头结点。
  2. 将头结点的指针域置空。
typedef struct Lnode{
     ElemType data;
      struct Lnode *next;
}LNode,*LinkList;

Status InitList_L(LinkList &L){
    L = new LNode;   //或L = (LinkList)malloc(sizeof(LNode));
    L->next = NULL;
    return OK;
}
二、 判断链表是否为空

算法步骤:

  1. 判断头结点指针域是否为空
int LinkEmpty(LinkList L){   //若为空表,返回1,否则返回0
   if(L->next)
      return 0;
   else 
      return 1;
}
三、 单链表的销毁(链表销毁后不存在)

算法步骤:

  1. 从头指针开始,依次释放所有结点
Status DestroyList_L(LinkList &L){
     Lnode *p; //或LinkList p;
     while(L){
        p = L;
        L = L->next;
        delete p;
}
 四、 清空链表--链表仍然存在,但链表中没有元素

算法步骤:

  1. 依次释放所有结点,并将头结点指针域设置为空
Status ClearList(LinkList &L){
    Lnode *p,*q;   //或LinkList p,q;
    p=L->next;
    while(p){
       q=p->next;
       delete p;
       p=q;
    }
    L->next==NULL;
    return OK;
}
五、 求单链表的表长

算法思路: 

  1. 从首元结点开始,依次计数所有结点
int ListLength_L(LinkList &L){
  LinkList p;  //Lnode *p;
  p=L->next;   //p指向第一个结点
  i=0;
  while(P){
      i++;    //遍历单链表,统计结点数
      p=p->next;
  }
  return i;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值