#include<iostream.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data; //存放结点数据
struct LNode *next; //指向下一个同类型节点指针
}linklist; //单链表节点类型
//1.建立链表
void jianli(linklist *&L,int W) //创建n个结点
{
if(W0) //此时传进去的是第一个结点的指针
return ;
else
{
//linklist *p;
L=new linklist; //指针指向新生成的结点
cin>>L->data; //输入数据
L->next=NULL; //尾插法插入数据
jianli(L->next,–W); //递归创建
}
}
//2.求出单链表中结点数目
int changdu(linklist *L)
{
if(LNULL)
return 0;
else
return changdu(L->next)+1;
}
//3.正向输出所有结点值
void zhengshu(linklist *L)
{
if(LNULL)
return ;
else
cout<<’ '<data;
zhengshu(L->next);
}
//4.逆向输出所有结点值
void nishu(linklist *L)
{
if(LNULL)
return
单链表基本运算(运用递归算法)
最新推荐文章于 2021-10-28 08:51:27 发布
这篇博客介绍了如何使用递归算法实现单链表的基本操作,包括建立链表、求链表长度、正向和逆向输出所有结点、获取第k个结点的值、在指定位置插入元素、删除特定位置的结点、删除指定值的所有结点、查找最大值和最小值以及销毁链表等。
摘要由CSDN通过智能技术生成