首页 > 其他 > 详细

线性表的链式表示和实现--单链表

时间:2016-04-17 23:13:08      阅读:341      评论:0      收藏:0      [点我收藏+]

单链表分为:动态链表、静态链表两种。


单链表的定义

链式存储:用一组任意存储单元存储线性表的数据元素。

逻辑顺序与物理顺序可以相同也可以不相同

插入、删除方便,共享空间好。


单链表的节点结构

技术分享

每个结点有一个元素和下个元素的地址(只有一个连接域),称单链表。

技术分享

链表有表头、表尾,表头也就是首地址,表尾为空值。

链表是非顺序存储,顺序存取

p1.x = p→x  (p1为对象,p为首地址)


class ListNode{

int  data;

ListNode *next;

};

ListNode *p;

技术分享 

→ data      

→ next   


单链表的指针实现

不带头结点的单链表结构

技术分享

判断表尾的条件:→ next == null 

判断空表的条件:L == null

带头结点的单链表结构

技术分享

真正有效的元素是从第二个结点开始的,

判断表尾的条件:p → next == null 

判断空表的条件:L→ next == null  (一般的都使用带头结点的)


单链表的插入操作

技术分享

技术分享

→ next = p → next;  

 p → next = q;

技术分享


单链表的删除操作

技术分享

q = → next;

→ next = q → next;

技术分享

技术分享

p → next = p → next  → next//等同于上面两句


构造一个链表

创建一个data域值为d,next域值为n的结点。

创建链表是否成功,参照判断链表是否为空的条件。


遍历链表

void printList(){

Node *c = head; //新建一个指针指向表头


while(c!=NULL){//判断链表是否为空

print(c→data)//输出结点的值

c = c → nextNode();//c指向下一个结点

}

}









线性表的链式表示和实现--单链表

原文:http://blog.csdn.net/java_sparrow/article/details/51169271

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!