单链表习题整理(五)

题目一

试写一算法,对单链表实现就地逆置

思想

将p指向L的下一个结点,L置空;然后利用 头插法插入是倒序的 将所有元素头插法插入到序列L中

代码

Status T222(LinkList L)
{
	LinkList pre,p;
	if(!L||!L->next)
		return ERRPR;
	p=L->next;
	L->next=NULL;
	while(p)
	{
	//头插法
		pre=p;
		p=p->next;
		pre->next=L->next;
		L->next=pre;
	}
	return OK;
}

题目二

试写一算法,对顺序表实现就地逆置

思想

两两交换,第一个和最后一个,第二个和倒数第二个…直到到了中间位置

代码

Status T221(SqList L)
{
	int i,j;
	LElemType tmp;
	if(L.length=0)
		return ERROR;
	for(i=1,j=(L.length/2);j<=i;j++)
	{
		tmp=L.elem[j-1];
		L.elem[j-1]=L.elem[L.length-j];
		L.elem[L.length-j]=tmp;
	}
	return OK;
}
发布了73 篇原创文章 · 获赞 20 · 访问量 4479

猜你喜欢

转载自blog.csdn.net/lzl980111/article/details/102941102