标签:
单链表分为:动态链表、静态链表两种。
单链表的定义
链式存储:用一组任意存储单元存储线性表的数据元素。
逻辑顺序与物理顺序可以相同也可以不相同
插入、删除方便,共享空间好。
单链表的节点结构
每个结点有一个元素和下个元素的地址(只有一个连接域),称单链表。
链表有表头、表尾,表头也就是首地址,表尾为空值。
链表是非顺序存储,顺序存取。
p1.x = p→x (p1为对象,p为首地址)
class ListNode{
int data;
ListNode *next;
};
ListNode *p;
p → data
p → next
单链表的指针实现
不带头结点的单链表结构
判断表尾的条件:p → next == null
判断空表的条件:L == null
带头结点的单链表结构
真正有效的元素是从第二个结点开始的,
判断表尾的条件:p → next == null
判断空表的条件:L→ next == null (一般的都使用带头结点的)
单链表的插入操作
q → next = p → next;
p → next = q;
单链表的删除操作
q = p → next;
p → 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