赞
踩
#include <iostream> #define MaxSize 10 using namespace std; typedef struct{ int data[MaxSize]; int length; }SqList; //遍历操作 void PrintList(SqList L){ for(int i = 0; i < L.length; i++) cout << L.data[i] << " "; cout << endl; } // 插入操作 bool ListInsert(SqList &L, int i, int e){ if(i<1 || i>L.length+1) //判断i的范围是否有效 return false; if(L.length == MaxSize) //判断存储空间是否已满 return false; for(int j = L.length; j >= i; j--){ //将第i个元素及之后的元素后移 L.data[j] = L.data[j-1]; } L.data[i-1] = e; //在位置i处放入e L.length++; //长度+1 return true; } //删除操作 bool ListDelete(SqList &L, int i, int &e){ if(i<1 || i>L.length) //判断i的范围是否有效 return false; e=L.data[i-1]; //将被删除的元素赋值给e for(int j = i; j < L.length; j++){ //将第i个元素及之后的元素前移 L.data[j-1] = L.data[j]; } L.length--; //长度-1 return true; } //查询操作-按位查找 int GetElem(SqList L ,int i){ return L.data[i-1]; } //查询操作-按值查找 int LocateElem(SqList L ,int e){ for(int i = 0; i < L.length; i++){ if(L.data[i] == e){ return i+1; //数组下标为i的元素值=e,返回其位序i+1 } } return 0; } int main() { SqList L; L.length=0; //静态分配初始化 ListInsert(L,1,20); //第一个插入20 ListInsert(L,2,30); //第二个插入30 ListInsert(L,3,10); //第三个插入10 ListInsert(L,4,12); //第四个插入12 PrintList(L); //遍历 cout<<LocateElem(L,20)<<endl; //查询第一个20的位置 int e = -1; ListDelete(L,1,e); //删除第一个 cout<<GetElem(L,4)<<endl; //按位查找第四位 PrintList(L); //再次遍历 }
其运行结果为:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。