数据结构 单链表 编程题

数据结构 单链表 编程题,第1张

编程思路:从头到尾读出该链表数据并存入数组中,然后倒序输出数组元素

源代码:

void dao_visit(Link *l)

{

Link* rcv=l

Link* rcv2=rcv

int* a

int lenth=0

int i=0

//获得单链表长度

while(rcv)

{

lenth++

rcv=rcv->next

}

//为指针a分配lenth个空间

a=(int *)malloc(lenth*sizeof(int))

//将单链表的数据写入a中

while(rcv2)

{

a[i]=rcv2->data

rcv2=rcv2->next

i++

}

//倒序输出

for(i=0i<lenthi++)

printf("%d\n",a[lenth-1-i])

free(a)

}

运行结果截图:这是一个函数,我测试过了,可行。既然不是一个可运行程序,我就不截图了

简单说一下思路吧

1、该单链表已经是递增有序的了,那么只需在遍历这个单链表的过程中,将e与遍历到的这个节点、这个节点的下一个节点的值相比较,如果e的值大于当前节点,且e小于等于当前节点下一节点,那么将e插入到当前节点后

2、若循环起始节点为a节点,其下一节点a->next=b;则对a与b进行原地转置首先需要将b的next指针保存下来(如保存为tempPionter),然后再让b->next指向a,之后再让a=b,b=tempPointer,然后再对上述 *** 作进行循环,最终可得该链表的原地转置链表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8161909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存