C语言 链表结点的插入操作
提问人:刘团圆发布时间:2020-12-02
链表的插入操作就是根据一定条件将新产生的结点插入到已经存在的链表中。
例如假设一个链表是有序的,现将数字11插入到链表中,使链表仍有序。链表结点的插入操作分为如下几步:
①申请一个新结点,存放需要插入的数字。
②查找该结点应该存放的位置。从第一个结点开始查找新结点应该插入的位置,因为链表是有序存放的,所以可以用新结点的值依次和链表中的每个结点的数据域比较,如果新结点的值大,指针后移到下一个结点,继续比较,直到找到一个结点的值比新结点的值小,那么该结点的前面就是新结点应插 入的位置。具体过程如图所示。
③将新结点插入到指定的位置。
插入结点函数insert()程序代码如下:
void insert(SLIST *h,int x)
{
int i;
SLIST *p,*q,*t;
p=h;
q=(SLIST *)malloc(sizeof(SLIST));
q->data ==x;
while(p!=NULL)
{
if(x>p->data )
{
t=p;
p=p->next;
}
else
break;
}
q->next =p;
t->next =q;
}
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>