数据结构第2章b-12级.ppt

数据结构第2章b-12级

void INSERTBEFORE(linklist *head, linklist *p, datatype x) { linklist *s,*q; s=(linklist *)malloc(sizeof(linklist)); s-data=x; q=head; while(q-next!=p)q=q-next; s-next=p; q-next=s; } 前插操作具体算法如下: 改进的前插操作图示: s head a1 ai+1 p 原链表序列: a1,a2,……ai-1,ai 插入后链表序列:a1,a2,……ai-1,x,ai ai x ai void INSERTBEFORE1(linklist *p, datatype x ) { linklist *s; s=(linklist *)malloc(sizeof(linklist)); s-next=p-next; p-next=s; s-data=p-data; p-data=x; } 改进的前插操作具体算法: 4.删除运算 ???  删除运算是将表的第i个结点删去。 具体步骤: ??  (1)找到ai-1的存储位置p(因为在单链表中结点ai的存储地址是在其直接前趋结点ai-1的指针域next中) ??  (2)令p->next指向ai的直接后继结点(即把ai从链上摘下) ??  (3)释放结点ai的

文档评论(0)

1亿VIP精品文档

相关文档