面试的打击蛮大的,最基本的数据结构和算法都不会,哎!下定决心好好学习一哈这门课程
#include
#define ERROR 0
#define OK 1
#define MAX_SIZE 25
typedef int ElemType;
typedef struct List{
ElemType data[MAX_SIZE];
//当前线性表的最大长度
int length;
}SqList;
using namespace std;
//根据位置获取元素
int getElement(SqList *L,int i,int &e)
{
if (NULL == L || i<0 || i >L->length) {
cout<<"[getElement]____输入不合法,如:空表,数组下标越界"<
data[i-1];
return OK;
}
//根据指定的位置插入一个元素
int insertElement(SqList *L,int i,int e)
{
if (NULL == L || i<0 || i >L->length || L->length == MAX_SIZE) {
cout<<"[insertElement]____输入不合法,如:空表,数组下标越界,线性表已经满了"<
length;j!=i-1;--j) {
//前面的依次赋值给后面的
L->data[j]=L->data[j-1];
}
L->data[i-1]=e;
//不要忘记给length的长度加1
L->length++;
return OK;
}
//删除输入的某一个元素,可能存在重复的元素
void deleElement(SqList *L,int e)
{
int i=-1;
//注意这里如果写成i++可能就会导致错误,
while (++i
length)
{
//临界条件注意:i++先判断,在循环里面会导致数组下标越界
//这里终止条件为L->data[i+1],不存储在L->data[length]这个元素
if (e == L->data[i])
{
//找到当前的下标,并赋值
int j=i;
while (j < L->length -1)
{
//后面的依次赋值给前面的
L->data[j]=L->data[j+1];
++j;
}
L->length--;
}
}
}
//判断数组中的元素的个数
int getLength(SqList *L )
{
return L->length;
}
int main(int argc, const char * argv[])
{
SqList *L=(SqList *)malloc(sizeof(SqList)*MAX_SIZE);
if (NULL == L) {
cout<<"分配内存空间失败"<
data[i]=i; L->length++; } int e; if(OK == getElement(L,24,e)) cout<<"在第24个位置上的元素是:"<
<
length) { cout<
data[j]<<","; } cout<<"\n数组中的长度为:"<