#Python知识分享#
之前我们已经学习了如何定义单链表,并采用C语言代码和Python代码进行了编写。
但是对于单链表的定义还不止于此,让我们继续来一探究竟吧。
采用头插法建立单链表代码:
LinkListListheadinsert(LinkListL)//逆向来建立单链表
{LNode*s;intx;
L=(LinkList)malloc(sizeof(LNode));//创建头节点
L-next=NULL;//将链表初始化为空链表
scanf(“%d”,x);//输入节点的数值
while(x!=)//当输入到时表示结束
{s=(LNode*)malloc(sizeof(LNode));//创建新的节点,申请空间
s-data=x;//将要输入到节点的值存入单链表的数据域中
s-next=L-next;//将链表中指针域的值传入到新插入到节点指针中
L-next=s;//将新节点插入到表中,L为头指针
scanf(“%d”,x);}
returnL;}
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架创建不带头节点的单链表:
boolInitlist(LinkListL)//初始化一个空单链表
{L=NULL;//空表,暂无任何节点
returntrue;}
voidtest()
{LinkListL;//声明一个指向单链表的指针
Initlist(L);}//对单链表进行初始化
boolempty(LinkListL)
{if(L==NULL)returntrue;
elsereturnfalse;}
boolempty(LinkListL)
{return(L==NULL);}
创建带头节点的单链表:
boolInitlist(LinkListL)
{L=(LNode*)malloc(sizeof(LNode));
if(L==NULL)
returnfalse;
L-next=NULL;
returntrue;}
voidtest()
{LinkListL;//声明一个指向单链表的指针
Initlist(L);}//对单链表进行初始化
boolempty(LinkListL)
{if(L-next==NULL)
returntrue;
elsereturnfalse;}
python语言创建单链表:
def__init__(self,node=None,*args,**kwargs):
ifnodeisNone:
self.__head=node
else:
self.__head=Node(node)
forarginargs:
self.append(arg)
ifkwargs.values()isnotNone:
forkwarginkwargs:
self.append(kwargs[kwarg]
defis_empty(self):#判断链表是否为空,如若为空,则返回值为true
returnself.__headisNone
deflength(self):#计算链表的长度
cur=self.__head
count=0
whilecurisnotNone:
count+=1
cur=cur.next
returncount
本文系作者授权百家号发表,未经许可,不得转载。