链表的插入操作就是根据一定条件将新产生的结点插入到已经存在的链表中。
例如假设一个链表是有序的,现将数字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;
}
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>