📄 逆置(顺序表示).cpp
字号:
/*3.写一个线性表的转置算法(顺序表表示)
(a1,a2,….,an)变为(an,an-1,….,a1)*/
/*......................................................*/
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
struct node{//定义结构体
int data[MAXSIZE];//存放数组
int length;//数组的长度
};
int n;
void creat(node *L)//创建链表
{
int c;
int i,j;
L->length=0;
for(i=0;i<100;i++)
{
scanf("%d",&L->data[i]);
L->length++;//用来记录输入数据的个数
c=getchar();//输入的数存放在c中
if (c=='\n')
{
break;
}
else if(c=='$')
{
L->length--;
break;
}
}
L->length--;
printf("创建的链表是:\n");
for(i=0;i<=L->length;i++)
printf("%d ",L->data[i]);
printf("\n");
}
void invert(node *L)//实现链表的逆置
{
int i;
int x;
for(i=0;i<L->length/2;i++)//L的前半部分元素与其后半部分对应的元素进行交换
{
x=L->data[i];
L->data[i]=L->data[L->length-i-1];
L->data[L->length-i-1]=x;
}
}
void print(node*L)//输出链表
{
int i;
for(i=0;i<=L->length;i++)
printf("%d ",L->data[i]);
printf("\n");
}
void main()
{
node*L;
L=(node *)malloc(sizeof(node));
printf("请输入数........\n");
//printf("请输入:");
creat(L);
printf("逆置后的链表是:\n");
invert(L);
print(L);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -