文件名称:链表的插入过程-复高斯分布的数学基础理论
文件大小:6.48MB
文件格式:PDF
更新时间:2024-06-28 07:07:17
嵌入式 Linux C
(2)测试数据是否存在 在链表的操作时,通常需要检查链表第 i 个元素是否存在,这时,读者可以通过顺序遍 历链表来取得第 i 个元素,该程序如下所示: int GetElem(LinkList L,int i,ElemType *e) { /*L 为带头节点的单链表的头指针*/ /*当第 i 个元素存在时,其值赋给 e 并返回*/ LinkList p; int j; /*初始化,指向链表的第一个节点,j 为计数器*/ p=L->next; j=1; /*为防止 i 过大,通过判断 p 是否为空来确定是否到达链表的尾部*/ while(p&&jnext; ++j; } /*若第 i 个元素不存在,返回*/ if(!p||j>1) return 0; /*取得第 i 个元素*/ *e=p->data; return 1; } (3)链表的插入与删除 链表的插入与删除是链表中最复杂、最常见的操作,也是最能体现链表灵活性的操作, 因此希望读者能够认真阅读,切实掌握。 在单向链表中插入一个节点要引起插入位置前面节点的指针的变化,如图 8.3 所示。 B A B A data data NIL H 增加前: data data NIL H data 增加后: C 图 8.3 链表的插入过程 由图中可以看出,在链表中增加元素指针会依次有以下变化。 � C→next 变为 B,描述语言为:C→next = A→next。 � A→next 变为 C,描述语言为:A→next = C。