线性表的逆序输出(链表基础)
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
}LNode,*LinkList;
int main()
{
int n,i;
int a[1100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=n-1;i>0;i--)
printf("%d ",a[i]);
printf("%d\n",a[i]); //第一种,数组形式
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
LinkList p=L;
p->next=NULL;
for(i=0;i<n;i++)
{
LinkList s;
s=(LinkList)malloc(sizeof(LNode)); //总会创造一个不同于之前的地址,应该
s->data=a[i];
s->next=p->next;
p->next=s;
}
LinkList head=L;
while(head->next)
{
if(head->next->next==NULL)
printf("%d\n",head->next->data);
else
printf("%d ",head->next->data); //第二种,链表逆置,头插法
head=head->next; //head=head->next一定要写啊
}
return 0;
}