数据结构论坛

首页 » 分类 » 常识 » 数据结构干货单链表的定义二pyth
TUhjnbcbe - 2023/11/1 20:56:00
北京酒渣鼻医院医师 http://disease.39.net/bjzkbdfyy/210802/9262696.html

#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

本文系作者授权百家号发表,未经许可,不得转载。

1
查看完整版本: 数据结构干货单链表的定义二pyth