• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
SS婴
博客园    首页    新随笔    联系   管理    订阅  订阅
个人笔记数据结构与算法———单链表02

 

//单链表

#define ok 1

#define maxsize 100

#include<stdlib.h >

#define ERROR -1

typedef int Elemtype;

typedef int Status;

 

//1定义

typedef struct Lnode{

       Elemtype data;

       struct Lnode *next;

}Lnode ,*LinkList;

 

//2初始化

Status initLinkList(LinkList L){

       L=(LinkList)malloc(sizeof(Lnode));

       L->next=NULL;

       return ok;

}

 

//3判断链表是否为空

int ListEmpty(LinkList L){

       if(L->next)

              return 0;

       else{

              return 1;

       }

}

 

//4销毁

Status DeleList(LinkList&L){

       LinkList p;

       while(L!=NULL){

              p=L;

              L=L->next;  

              free(p);

       }

}

 

//5清空

Status clearList(LinkList&L){

       LinkList p,q;

       p=L->next;

       while(p!=NULL){

              q=p->next;

              free(p);

              p=q;

       }

       L->next=NULL;

       return ok;

}

 

//6求链表表长

int lengthLink(LinkList L){

       LinkList p;

       p=L->next;

       int i=0;

       while(p!=NULL){

              i++;

              p=p->next;

       }

       return i; 

}

 

//7取单链表中第i个元素

Status GetLink(LinkList L,int i,Elemtype &e){//i是获取元素的位置,通过e返回

       LinkList p;

       p=L->next;

       int j=1;

       while((p!=NULL) && (j<i)){

              p=p->next;

              ++j;

       }

       if(!p||j>i){

              return ERROR;

       }else{

              e=p->data;

              return ok;

       }

}

posted on 2020-05-13 13:54  SS婴  阅读(84)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3