数据结构中有试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表逆置为

 我来答
moxsone
推荐于2017-10-09 · TA获得超过3332个赞
知道大有可为答主
回答量:2796
采纳率:50%
帮助的人:1502万
展开全部
线性表的本地逆序可以用第一个元素和最末元素对调,第二个元素与倒数第二个元素对调....
关键是要已知顺序表的长度(即元素总个数)和控制对调操作的结束条件(考虑奇数个元素和偶
数个元素的时候停止对调操作的条件).在写程序的时候线性表可以用一维数组代替.

#include <stdio.h>

#define LENGTH 11

int main(void)
{
int a[LENGTH];
/*用来表示当前调换位置的变量*/
int i,j;
/*一个辅助调换的变量*/
int tmp;

printf("逆序前为:");
/*假定初始化一个线性表*/
for(i=0;i<LENGTH;i++){
a[i]=i;
printf("[%d]",a[i]);
}
printf("\n");

i=0;
j=LENGTH-1;

/*对调的终止条件为j比i大1(发生在偶数个元素的时候)
*或者j比i大2(发生在奇数个元素的时候)*/
while(1){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
if(j-i==1 || j-i==2 || j-i<=0){
break;
}
i++;
j--;
}

printf("逆序后为:");
for(i=0;i<LENGTH;i++){
printf("[%d]",a[i]);
}
printf("\n");

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式