#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#define MaxSize 10
typedef struct {
int data[MaxSize];
int length;
}SeqList;
void InitList(SeqList &L ){
for(int i = 0 ; i < L.length ; i++){
L.data[i] = 0;
}
}
int InserList(SeqList &L , int i, int e){
if(i > MaxSize || i<1){
return -1;
}
if(MaxSize==L.length){
return -2;
}
for(int j = L.length ; j>=i ;j--){
L.data[j] = L.data[j-1];
}
L.data[i-1] = e;
L.length++;
}
bool deleteList_e(SeqList &L , int i, int &e){
if(L.length ==0){
return false;
}
if(i<1 || i >L.length +1){
return false;
}
e=L.data[i-1];
for(int j = i ;j <L.length;j++){
L.data[j-1] = L.data[j];
}
L.length--;
return true;
}
void show(SeqList L){
for(int i = 0 ; i< L.length ; i++){
printf("List 【%d】:%d \n",i,L.data[i]);
}
}
bool findByIndex(SeqList L,int i,int &e){
if(L.length ==0){
return false;
}
if(i<1 || i >L.length +1){
return false;
}
e = L.data[i-1];
return true;
}
bool findByValue(SeqList L,int &index,int e){
if(L.length ==0){
return false;
}
for(int i = 0 ; i < L.length ; i++){
if(L.data[i] == e){
index = i+1;
break;
}
}
}
int main(){
SeqList L;
InitList(L);
InserList(L,1,1);
InserList(L,2,2);
InserList(L,3,3);
InserList(L,4,4);
int index = -1;
int val = -3;
int i = 2;
if( findByIndex(L,i,val)){
printf("第 %d 个 元素 为 %d\n",i,val);
}else{
printf("error");
}
if( findByValue(L,index,4)){
printf("值为4的元素是第 %d 个\n",index);
}else{
printf("error\n");
}
// // printf("%d \n",InserList(L,0,888));
// int e=-1;
// // deleteList_e(L,2,e);
// if( deleteList_e(L,2,e)){
// printf("第 %d 个元素已经删除,值为:%d \n",2,e);
// }
//printf("length: %d \n",L.length);
show(L);
return 0;
}
顺序表查找
最新推荐文章于 2024-10-02 23:40:03 发布