注册 登录
编程论坛 数据结构与算法

越来越呆,大虾进来~~

编程小呆 发布于 2010-04-06 21:38, 535 次点击
刚写了个顺序表逆置代码,不吝赐教
程序代码:
//顺序表的就地逆置
#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 100
typedef struct{
    int data[MAXSIZE];
    int length;
}SqList;

void Creat_SqList(SqList *L,int n){//创建长度为n的顺序表
    L->length=n;
    int i=0;
    printf("请输入%d个数据:",n);
    for(;i<n;i++)
        scanf("%d",&L->data[i]);
}

void Reverse_SqList(SqList *L){//逆置操作函数
    int n,i,j,t;
    n=L->length;
    if(n==0||n==1) return;
    for(i=0,j=n-1;i<j;i++,j++){
        t=L->data[i];
        L->data[i]=L->data[j];
        L->data[j]=t;
    }
}

void Print_SqList(SqList *L){//输出顺序表
    int i,n;
    n=L->length;
    printf("\n输出%d个数据:",n);
    for(i=0;i<n;i++)
        printf("%d",L->data[i]);
}

int main(){
    SqList L;
    int n;
    printf("请输入存入该顺序表的数据个数n=");
    scanf("%d",&n);
    Creat_SqList(&L,n);
    Reverse_SqList(&L);
    Print_SqList(&L);
    return 0;
}
        


3 回复
#2
寒风中的细雨2010-04-07 08:06
//顺序表的就地逆置
#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 100
typedef struct
{
    int data[MAXSIZE];
    int length;
}SqList;

void Creat_SqList(SqList *L,int n){//创建长度为n的顺序表
    L->length=n;
    int i=0;
    printf("请输入%d个数据:",n);
    for(;i<n;i++)
        scanf("%d",&L->data[i]);
}

void Reverse_SqList(SqList *L)
{//逆置操作函数
    int n,i,j,t;
    n=L->length/2;
    if( L->length<=1 ) return;
    for(i=0,j=L->length-1;n>0;n--,i++,j--)
    {
        t=L->data[i];
        L->data[i]=L->data[j];
        L->data[j]=t;
    }
}

void Print_SqList(SqList *L){//输出顺序表
    int i,n;
    n=L->length;
    printf("\n输出%d个数据:",n);
    for(i=0;i<n;i++)
        printf("%d ",L->data[i]);
}

int main()
{
    SqList L;
    int n;
    printf("请输入存入该顺序表的数据个数n=");
    scanf("%d",&n);
    Creat_SqList(&L,n);
    Reverse_SqList(&L);
    Print_SqList(&L);
    printf("\n");
    return 0;
}
#3
asdjc2010-04-09 13:59
楼主,你的程序好像没问题呀?你要问什么?
#4
编程小呆2010-04-09 21:59
回复 3楼 asdjc
呵呵,有点小问题,1楼回了
1