单链表习题整理(三)

题目

试写一算法,在无头结点的动态单链表上实现线性表操作INSERT(L, i, b),并和在带头结点的动态单链表上实现相同操作的算法进行比较。

思想

这个题目非常简单,关键在于是否注意到无头结点,无头结点的动态单链表插入在1位置区分一下,其他都是循环找到前一个结点,用q指向,然后插入 p->next=q->next;
q->next=p;

代码

Status T217(LinkList *L,int i,LElemTyoe_L b)
{
	LinkList p,q;
	int count;
	p=(LinkList)malloc(sizeof(LNode));
	if(!p)
		exit(OVERFLOW);
	p->data=b;
	if(i>0)
	{
		if(i=1)
		{
			p->next=*L;
			*L=p
			return OK;
		}
		else
		{
			if(*L)
			{
				count=1;
				q=*L;
				while(count<i-1&&q)
				{
					count++;
					q=q->next;
				}
				if(q)
				{
					p->next=q->next;
					q->next=p;
					return OK;
				}//if# 
			}//if#
		}//else#
	}//if#
	return ERROR;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值