大家好,今天小编关注到一个比较有意思的话题,就是关于c语言单向链表逆序的问题,于是小编就整理了2个相关介绍c语言单向链表逆序的解答,让我们一起看看吧。
如何将单向链表逆序?
将一条链表按逆序输出假若头结点为L,则有; p=q=L;/*p,q为指向头结点的两个指针*/ while(p->next!=NULL) p=p->next;/*让p指向键表的最后一个要访问结点*/ while(1) { while(q->next!=p) q=q->next;/*让q向后找,找到最后一个要打印的结点*/ printf("%d\n",p->data); p=q;/*p向前移动一个*/ q=L;/*q又指向头结点*/ if(p=L)/*访问完了退出*/ break; }你参考吧
C语言问题C:输出一个整数的逆数?
如果是《数据解构》课程的作业,可能是要求你写一个【栈】,根据课程的进度,你需要使用数组、链表来实现。
数组最简单,但是要浪费一点空间,例如允许最多输入N个数,那就要定义一个int[N]的数组,顺序输入,逆序输出都用for、while语句实现。
#include<stdio.h>
#define N 100
(图片来源网络,侵删)
main(){
int a[N],i,n,x;
(图片来源网络,侵删)
n=0;
for (i=0;i<N;i++){scanf("%d",&x);if (x) {a[i]=x;n++;} else break;}
for (i=n-1;i>=0;i--) printf("%d ",a[i];);
到此,以上就是小编对于c语言单向链表逆序的问题就介绍到这了,希望介绍关于c语言单向链表逆序的2点解答对大家有用。