单链表的定义和使用(例子)与单链表的基本操作与实现

存储学生学号、姓名、成绩的单链表结点类型定义:

复制代码
typedef Struct{
 char num[8];  //数据域
 char name[8];  //数据域
 int score;  //数据域
}Elem Type;
typedef struct Lnode{
  ElemType data;  //数据域
  struct Lnode *next;  //指针域
}
复制代码

单链表的基本操作:
   初始化(创建一个空表)

status InitList_L(LinkList &L){
   L = new Lnode; //生成一个新节点作头结点,用头指针L指向头结点,L为指针变量
   L->next=NULL;   //将头结点的指针域置空
   return ok;
}

判断链表知否为空(只需判断链表的指针域是否为空即可)

int ListEmpty(LinkList){
   if(L->next)
      return 0; //非空
  else 
     return 1;
}

单链表的销毁:(是将所有的结点包括头指针全部销毁,不存在)

复制代码
Status DESTROYlist_L(LinkList &L){  //销毁单链表L
     Lnode *p;  //定义指针变量,用于指向要销毁的结点
    while(L){   //因为要一个结点一个结点的移动,所以要借助循环来移动
     p=L;  //让指针P指向L当前所指向的结点
    L=L->next;
    delept p;
}
    return OK;  //删除完毕
}
复制代码

清空链表  不啦不啦 。。。。搜搜吧,不想敲了

指针指向头结点 使用  P=L;语句

指针指向首元结点 使用 P = L->next;语句

p指向下一结点: p=p->next;

posted @   小羊冒险家  阅读(167)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示