C++不使用头结点创建单链表,并实现删除某个结点的功能
2019-07-13 11:07
225 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38220144/article/details/95733510
头部声明如下
[code]#include <iostream> #include <malloc.h> using namespace std; typedef int ElemType; typedef struct LNode{ ElemType data;//存放数据元素值 struct LNode *next; }LinkNode;
以下是主函数:
[code]int main(){ ElemType a[5]={1,4,8,3,5};//定义ElemType类型的数组 LinkNode *L; int x;//要删除的值 Create_LinklistHead(L,a,5);//创建不带头结点的单链表 Display(L);//输出单链表 cout<<endl; cout<<"输入你想要删除的值:"; cin>>x; Del_X_3(L,x);//删除单链表的函数 Display(L); return 0; }
删除函数如下:
[code]void Del_X_3(LinkNode *&L,ElemType x){ LinkNode *p; if(L==NULL) return; if(L->data==x){ p=L; L=L->next; free(p); Del_X_3(L,x); } else Del_X_3(L->next,x); }
输出函数如下:
[code]void Display(LinkNode *&L){ LinkNode *p=L; while(p!=NULL){ cout<<p->data<<" "; p=p->next; } }
头插法创建单链表:
[code]void Create_LinklistHead(LinkNode *&L,ElemType a[],int n)//采用头插法 { int i; LinkNode *q; L=NULL; for(i=0;i<n;i++) { q=(LinkNode *)malloc(sizeof(LinkNode));//生成新节点 q->data=a[i]; q->next=L; //将L所指向的地址赋给新生成的节点指针 L=q; //头指针指向新生成节点 } }
相关文章推荐
- 使用Ext中的Grid,Form,Dialog来实现列表,创建,更新,删除,查找和分页功能
- 使用Ext的Grid,Form,Dialog来实现分页列表,创建,修改,删除功能
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- C++实现单链表的创建、插入、删除、逆置操作
- C++实现单链表常用功能(不带头结点)
- C++实现删除单链表节点的功能(源代码+截图)
- 07、FastDFS的概念,使用。图片上传保存功能的实现,图片删除功能。根据模板id返回规格和规格选项。将勾选的规格和选项存入到封装对象。通过勾选的规格选项自动创建item的List
- java实现单链表的初始化,创建,删除,插入,查找,排序,同项删除,退出等功能
- c++实现循环单链表的相关操作(创建,插入,删除,保序插入,统计结点)
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- C++--如何实现SDI程序使用CSplitterWnd创建的多个视图的动态地显示和关闭视图
- 在C++中创建并使用WEB服务,实现跨平台
- 使用swig实现C++的python扩展功能
- 使用DataList实现 加入购物车,编辑,删除,更新,取消功能。
- 两种删除单链表结点的实现,一种O(n),一种O(1)
- main函数中通过使用Person类和AddressBook类,创建对象、调用方法,实现以下8个功能
- C++实现单链表(含头结点)
- 用结构体实现链表的创建、遍历、结点插入、结点删除
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表