#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)#定义节点的字节输出
本文系作者授权百家号发表,未经许可,不得转载。