- // bo2-6.cpp 具有实用意义的线性链表(存储结构由c2-5.h定义)的24个基本操作
- void MakeNode(Link &p,ElemType e)
- { // 分配由p指向的值为e的结点。若分配失败,则退出
- p=(Link)malloc(sizeof(LNode));
- if(!p)
- exit(ERROR);
- p->data=e;
- }
- void FreeNode(Link &p)
- { // 释放p所指结点
- free(p);
- p=NULL;
- }
- void InitList(LinkList &L)
- { // 构造一个空的线性链表L
- Link p;
- p=(Link)malloc(sizeof(LNode)); // 生成头结点
- if(p)
- {
- p->next=NULL;
- L.head=L.tail=p;
- L.len=0;
- }
- else
- exit(ERROR);
- }
- void ClearList(LinkList &L)
- { // 将线性链表L重置为空表,并释放原链表的结点空间
- Link p,q;
- if(L.head!=L.tail) // 不是空表
- {
- p=q=L.head->next;
- L.head->next=NULL;
- while(p!=L.tail)
- {
- p=q->next;
- free(q);
- q=p;
- }
- free(q);
- L.tail=L.head;
- L.len=0;
- }
- }
- void DestroyList(LinkList &L)
- { // 销毁线性链表L,L不再存在
- ClearList(L); // 清空链表
- FreeNode(L.head);
- L.tail=NULL;
- L.len=0;
- }
- void InsFirst(LinkList &L,Link h,Link s) // 形参增加L,因为需修改L
- { // h指向L的一个结点,把h当做头结点,将s所指结点插
bo2-6.cpp 具有实用意义的线性链表(存储结构由c2-5.h定义)的24个基本操作
最新推荐文章于 2024-06-24 00:12:24 发布
该博客详细介绍了如何使用C++实现线性链表的24个基本操作,包括节点的创建、释放、初始化、清除、销毁、插入、删除、附加、定位、遍历等,这些操作对于理解和操作链表至关重要。
摘要由CSDN通过智能技术生成