01线性链表
1、线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(可以连续,也可以不连续)。
2、为了表示每个数据元素ai与器直接后继数据元素a(i+1)之间的逻辑关系,对数据元素ai来说,除了存储本身的信息之外,还需要存储一个指示其直接后继的信息。
3、以上两部分信息组成数据元素ai的额存储映像,称为结点。它包括两个域,其中存储数据元素信息的域称为数据域,存储直接后继存储位置的域称为指针域。
4、指针域中存储的信息称做指针或链。n个结点链结成一个链表,即线性表的链式存储结构。
5、由于链表大的每个结点中只包含一个指针域,故又称为线性链表或单链表。
02循环链表
1、循环链表是另一种形式的链式存储结构。
2、循环链表的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。
3、循环链表的操作和线性链表基本一致,差别仅在于算法中的循环条件是否等于头指针。
4、有些时候,若在循环链表中设立尾指针而不设头指针,可使某些操作简化。例如将两个线性表合并成一个表时,仅需将一个表的表尾和另一表的表头相接。
03 双向链表
1、双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前趋。
2、和单链的循环表类似,双向链表也可以有循环表。
3、在双向链表中,有些操作仅需涉及一个方向的指针,则它们的算法描述和线性链表的操作相同,但在插入,删除时有很大的不同,在双向链表中需同时修改两个方向上的指针。
更多案例可以go公众号:C语言入门到精通
正文完