有没有人能教一下怎么写这数据结构?

1.已知线性表LA的数据元素(n个,n为偶数),现要求将LA拆开
成两个新的线性表LB,LC。要求LB中的数据元素为LA中的奇数
位序的数据元素(an,a3,…,am-1),LC中的数据元素为LA中的偶数
位序的数据元素(az,a4,…,an)。
2.已知线性表LA的数据元素(n个),现要求将LA的数据元素复
制到另一个线性表 LB中
3.设有一个线性表采用顺序存储结构,表中的数据元素值为正整数
(n个)。设在O(n)时间内,将线性表分成两为两部分,其中左半部
分每个元素都小于原表的第一个元素,而右半部分则相反。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这篇文章:将数组a中的n个整数按相反顺序存放(数值元素倒序排列)
  • 除此之外, 这篇博客: 已知长度为n的线性表A采用顺序储存结构,请写出一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可删除线性表中的所有值为item的数据元素。中的 已知长度为n的线性表A采用顺序储存结构,请写出一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可删除线性表中的所有值为item的数据元素。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在这里插入图片描述
    源代码:

    #include <stdio.h>
    #include <stdlib.h>
    #define OK 1
    #define ERROR -1
    #define MAXSIZE 100
    #define OVEERFLOW -2
    typedef int Stauts;
    typedef int ElemType;
    typedef struct 
    {
    	ElemType *elem;
    	int length;
    }SqList;
    Stauts InitList_Sq(SqList &L)
    {
    	int i;
        L.elem=new ElemType[10];
        if(!L.elem) exit(OVEERFLOW);
        L.length=10;
        for(i=0;i<10;i++)
    		L.elem[i]=i;
    return OK;
    }
    Stauts ListDelete(SqList &A,int item)
    {
    	int i,j;
    	for(j=0;j<A.length;j++)
    			if(A.elem[j]==item)
    			{
    				for(i=j;i<A.length;i++)
    					A.elem[i]=A.elem[i+1];
    				A.length--;
    			}
    			return OK;
    }
    int main()
    {
    	int i,item;
    	SqList A;
    	InitList_Sq(A);
    	printf("成功构建顺序表\n");
    	printf("请在表中输入十个元素\n");
    	for(i=0;i<A.length;i++)
    	{
    		A.elem[i]=i;
    		scanf("%d",&A.elem[i]);
    		printf("%5d",A.elem[i]);
    	}
    	printf("\n");
    	printf("请输入要删除的数值");
    	scanf("%d",&item);
    	ListDelete(A,item);
    	printf("操作完成后的数值为:");
    	for(i=0;i<A.length;i++)
    		printf("%5d",A.elem[i]);
    	printf("\n");
    	return 0;
    }
    
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^