顺序表上的基本操作实现

作者在 2011-06-15 13:06:37 发布以下内容
标题: 顺序表上的基本操作实现
时 限: 1000 ms
内存限制: 10000 K
总时限: 1000 ms
描述: 在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。
输入: 输入线性表La的长度:n
输入线性表La中的元素:a1 a2 a3 ...an(数值有序,为降序)
输入要插入到线性表La中的元素x和插入的位置i:x i
输入要删除元素的位置:i
输入要查找的元素:x
输入线性表Lb的长度:m
输入线性表Lb中的元素:b1 b2...bm(数值有序,为升序)
输出: 创建好的线性表La=a1 a2...an
插入一个元素后的线性表La=a1 a2...an+1
删除一个元素后的线性表La=a1 a2...an
查找一个输入的元素,如果找到,输出"找到,x在第i个位置";如果没有找到,输出"没找到"的信息。
逆置La后的线性表an an-1...a1
合并La和Lb后的线性表
输入样例:

5
14 11 10 9 5
8 4
4
10
4
1 3 6 9

输出样例:

创建好的线性表La=14 11 10 9 5
插入一个元素后的线性表La=14 11 10 8 9 5
删除一个元素后的线性表La=14 11 10 9 5
找到,10在第3个位置
逆置后的线性表La=5 9 10 11 14
合并La和Lb后的线性表=1 3 5 6 9 9 10 11 14

#include
<stdio.h>
#include <stdlib.h>


void creat(int *p,int length)
{
    int i;
    for(i=0;i<length;i++)
    {
        scanf("%d",&p[i]);
    }

}
void view(int *p,int length)
{
    int i;
    for(i=0;i<length;i++)
    {
        printf("%d ",p[i]);
    }
    printf("\n");
}
void insert(int La[],int x,int i,int length)
{
    int p;
    for(p=length-1;p>=i-1;p--)
    {
        La[p+1]=La[p];
    }
    p++;
    La[p]=x;
}
void delet(int La[],int j,int length)
{
    int i;
    for(i=j-1;i<length;i++)
    {
        La[i]=La[i+1];
    }
}
void union_list(int Lc[],int La[],int Lb[],int length,int k)
{
    int m,q,n;
    m=n=q=0;
    while(m<length&&n<k)
    {
        if(La[m]<Lb[n])
        {
          Lc[q]=La[m];
          q++;
          m++;
        }
        else
        {
            Lc[q]=Lb[n];
            q++;
            n++;
        }
    }
    if(n==k)
    {
      while(m<length)
      {
         Lc[q]=La[m];
         m++;
         q++;
      }
    }
    if (m==length)
    {
      while(n<k)
      {
         Lc[q]=Lb[n];
         n++;
         q++;
      }
    }

}
void found(int *p,int y,int length)
{
    int i=0;
    int rate=0;
    for(;i<length;i++)
    {
        if(p[i]==y)
        {
            rate=1;
            printf("找到,%d在第%d个位置\n",y,++i);
            break;
        }
    }
    if(rate==0)
       printf("没找到\n");
}
void exchange(int La[],int length)
{
    int i=0;
    int j=length;
    int temp;
    for(;i<=(length-1)/2;i++)
    {
        temp=La[i];
        La[i]=La[--j];
        La[j]=temp;
    }
}
int main()
{
    typedef int type;
    int length,i,j,k;
    type La[1000],Lb[1000],Lc[2000],x,y;
    printf("请输入线性表La的长度:\n");
    scanf("%d\n",&length);
    printf("请输入线性表La中的元素:\n");
    creat(La,length);
    printf("创建好的线性表La=");
    view(La,length);
    printf("请输入要插入到线性表中的数字x和插入的位置i:\n");
    scanf("%d%d",&x,&i);
    insert(La,x,i,length);
    printf("线性表La=");
    view(La,++length);
    printf("请输入要删除的数字的位置:\n");
    scanf("%d",&j);
    delet(La,j,--length);
    printf("线性表La=");
    view(La,length);
    printf("请输入要查找的数字:\n");
    scanf("%d",&y);
    found(La,y,length);
    exchange(La,length);
    printf("逆置后的线性表La=");
    view(La,length);
    printf("请输入线性表Lb长度:\n");
    scanf("%d",&k);
    printf("请输入线性表Lb中的元素:\n");
    creat(Lb,k);
    printf("合并La和Lb后的线性表为:");
    union_list(Lc,La,Lb,length,k);
    view(Lc,length+k);
    return 0;
}
标题: 顺序表上的基本操作实现
时 限: 1000 ms
内存限制: 10000 K
总时限: 1000 ms
描述: 在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。
输入: 输入线性表La的长度:n
输入线性表La中的元素:a1 a2 a3 ...an(数值有序,为降序)
输入要插入到线性表La中的元素x和插入的位置i:x i
输入要删除元素的位置:i
输入要查找的元素:x
输入线性表Lb的长度:m
输入线性表Lb中的元素:b1 b2...bm(数值有序,为升序)
输出: 创建好的线性表La=a1 a2...an
插入一个元素后的线性表La=a1 a2...an+1
删除一个元素后的线性表La=a1 a2...an
查找一个输入的元素,如果找到,输出"找到,x在第i个位置";如果没有找到,输出"没找到"的信息。
逆置La后的线性表an an-1...a1
合并La和Lb后的线性表
输入样例:

5
14 11 10 9 5
8 4
4
10
4
1 3 6 9

输出样例:

创建好的线性表La=14 11 10 9 5
插入一个元素后的线性表La=14 11 10 8 9 5
删除一个元素后的线性表La=14 11 10 9 5
找到,10在第3个位置
逆置后的线性表La=5 9 10 11 14
合并La和Lb后的线性表=1 3 5 6 9 9 10 11 14

标题: 顺序表上的基本操作实现
时 限: 1000 ms
内存限制: 10000 K
总时限: 1000 ms
描述: 在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。
输入: 输入线性表La的长度:n
输入线性表La中的元素:a1 a2 a3 ...an(数值有序,为降序)
输入要插入到线性表La中的元素x和插入的位置i:x i
输入要删除元素的位置:i
输入要查找的元素:x
输入线性表Lb的长度:m
输入线性表Lb中的元素:b1 b2...bm(数值有序,为升序)
输出: 创建好的线性表La=a1 a2...an
插入一个元素后的线性表La=a1 a2...an+1
删除一个元素后的线性表La=a1 a2...an
查找一个输入的元素,如果找到,输出"找到,x在第i个位置";如果没有找到,输出"没找到"的信息。
逆置La后的线性表an an-1...a1
合并La和Lb后的线性表
输入样例:

5
14 11 10 9 5
8 4
4
10
4
1 3 6 9

输出样例:

创建好的线性表La=14 11 10 9 5
插入一个元素后的线性表La=14 11 10 8 9 5
删除一个元素后的线性表La=14 11 10 9 5
找到,10在第3个位置
逆置后的线性表La=5 9 10 11 14
合并La和Lb后的线性表=1 3 5 6 9 9 10 11 14

标题: 顺序表上的基本操作实现
时 限: 1000 ms
内存限制: 10000 K
总时限: 1000 ms
描述: 在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。
输入: 输入线性表La的长度:n
输入线性表La中的元素:a1 a2 a3 ...an(数值有序,为降序)
输入要插入到线性表La中的元素x和插入的位置i:x i
输入要删除元素的位置:i
输入要查找的元素:x
输入线性表Lb的长度:m
输入线性表Lb中的元素:b1 b2...bm(数值有序,为升序)
输出: 创建好的线性表La=a1 a2...an
插入一个元素后的线性表La=a1 a2...an+1
删除一个元素后的线性表La=a1 a2...an
查找一个输入的元素,如果找到,输出"找到,x在第i个位置";如果没有找到,输出"没找到"的信息。
逆置La后的线性表an an-1...a1
合并La和Lb后的线性表
输入样例:

5
14 11 10 9 5
8 4
4
10
4
1 3 6 9

输出样例:

创建好的线性表La=14 11 10 9 5
插入一个元素后的线性表La=14 11 10 8 9 5
删除一个元素后的线性表La=14 11 10 9 5
找到,10在第3个位置
逆置后的线性表La=5 9 10 11 14
合并La和Lb后的线性表=1 3 5 6 9 9 10 11 14

标题: 顺序表上的基本操作实现
时 限: 1000 ms
内存限制: 10000 K
总时限: 1000 ms
描述: 在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。
输入: 输入线性表La的长度:n
输入线性表La中的元素:a1 a2 a3 ...an(数值有序,为降序)
输入要插入到线性表La中的元素x和插入的位置i:x i
输入要删除元素的位置:i
输入要查找的元素:x
输入线性表Lb的长度:m
输入线性表Lb中的元素:b1 b2...bm(数值有序,为升序)
输出: 创建好的线性表La=a1 a2...an
插入一个元素后的线性表La=a1 a2...an+1
删除一个元素后的线性表La=a1 a2...an
查找一个输入的元素,如果找到,输出"找到,x在第i个位置";如果没有找到,输出"没找到"的信息。
逆置La后的线性表an an-1...a1
合并La和Lb后的线性表
输入样例:

5
14 11 10 9 5
8 4
4
10
4
1 3 6 9

输出样例:

创建好的线性表La=14 11 10 9 5
插入一个元素后的线性表La=14 11 10 8 9 5
删除一个元素后的线性表La=14 11 10 9 5
找到,10在第3个位置
逆置后的线性表La=5 9 10 11 14
合并La和Lb后的线性表=1 3 5 6 9 9 10 11 14

顺序表上的基本操作实现
默认分类 | 阅读 1074 次
文章评论,共0条
游客请输入验证码
浏览70064次