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

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

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 @ 2022-10-07 19:21  小羊冒险家  阅读(191)  评论(0)    收藏  举报