谁会数据结构的帮忙下噢?
1,假设顺序表L中的元素递增有序,设计算法在顺序表中插入元素x,要求插入后仍保持其递增有序特性。2,设计算法将递增有序顺序表A、B中的元素值合并为一个递增有序顺序表C。
附顺序表类型声明:
#define MAXLEN 100
typedef struct
{ElemType *elem ;
int length;
int listsize;
}sqlist;
初始化:
void InitList_Sq(SqList &L)
{
L.elem=(ElemType *) malloc (MAXSIZE * sizeof (ElemType);
if(!L.elem) exit(-1);
L.length=0;
L.listsize=MAXSIZE;
}
求表长:
int Length_Sq(SqList L)
{
return L.length ;
}
按序号取元素:
ElemType GetElem_Sq (SqList L,int i )
{
if(i<1 || i>L.length)
error(“超出范围”);
else return L.elem[i-1];
}
按值求元素:
int LocateElem_Sq(SqList L,ElemType x)
{ int i;
for (i=0; i<L.length; i++)
if (L.elem[i]==x) return (i+1);
return(0);
}
插入:
void Insert_Sq(SqList &L,ElemType x,int i)
{ int j;
if (L.length==MAXSIZE) error(“overflow”);
else if(i<1||i>L.length+1) error(“position error”);
else
{ for(j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=x;
L.length++;
}
}
删除:
void Delete_Sq(SqList &L,int i)
{ int j;
if (L.length<=0) error(“下溢出错”);
if (i>L.length||i<=0) error(“删除位置出错”);
else
for (j=i;j<=L.length-1;j++)
L.elem[j-1]=L.elem[j];
L.length--;
}