数据结构论坛

首页 » 分类 » 分类 » 数据结构干货单链表的定义python和
TUhjnbcbe - 2024/9/2 16:41:00

#Python知识分享#

一、单链表的定义

1、单链表与顺序表不同,顺序表的每一个节点斗志存放数据元素,而单链表除了要存放数据元素外,还要存储将指向下一个节点的指针。

2、顺序表的优点是可以积极存取,存储数据元素的密度高;缺点是在存储时需要大量连续的空间,改变容量时不方便的。

3、单链表相比于顺序表而言,在存储时不要求大片连续的存储空间,在改变容量时比较方便;但是不可以随机存取,需要耗费一定的空格键来存放指针。

三、C代码定义一个单链表

structLNode//定义单链表节点的类型

{Intdata;//一个节点存放一个数据元素

structLNode*next;//next指针指向下一个节点

}

超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架

存放数据元素的称为数据域;存放指针的称为指针域。

structLNode*p=(structLNode*)malloc(sizeof(structLNode));

在需要申请新的空间时,采用malloc函数来申请增加一个新节点,并采用指针p指向这个结点。

采用typedef关键字来对数据类型进行重命名,即通过取别名的方式,使得在使用时更加方便,不冗长,也能知道其所表示的含义。

typedef数据类型别名

typedefstructureLNodeLNode;

LNode*p=(LNode*)malloc(sizeof(LNode));

LNode*L;//声明一个指针指向单链表中第一个节点

或者LinkListL;(代码的可读性更强)

LNode*强调返回的是一个节点

LinkList强调的是一个单链表

代码定义单链表

typedefstructLNode{

intdata;

structLNode*next;

}LNode,*LinkList;

LNode*Getelem(LinkListL,inti){

intj=1;

LNode*p=L-next;

if(i==0)

returnL;

if(i1)

returnNULL;

while(p!=NULLji)

{p=p-next;

j++;}

returnp;}

Python代码定义存储数据的变量与指向下一个数据的变量:

data:数据

_next:下一个数据

def__init__(self,data,_next=None):

self.data=data#存储数据元素的变量

self._next=_next#存储指向下一个数据元素的变量

def__repr__(self):

returnstr(self.data)#定义节点的字节输出

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

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