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)时间内,将线性表分成两为两部分,其中左半部
分每个元素都小于原表的第一个元素,而右半部分则相反。
源代码:
#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;
}