/*
* SqList.cpp
*
* Created on: 2015年4月20日
* Author: Administrator
* 数据结构源代码之线性表——顺序表类
*/
#include<iostream>
using namespace std;
const int maxlen = 100;
struct TsqList{
char elem[maxlen];//长度为maxlen的字符型数组elem
int curlen;//线性表当前长度
};
int location(TsqList myTsqList, char el){//求顺序表myTsqList中el元素的为序,若找到,则返回其位序;若无,则返回0;
int i = 0;
while( i < myTsqList.curlen && myTsqList.elem[i] != el){
i++;
}
if(i < myTsqList.curlen){
return (i+1);
}else{
return 0;
}
}
bool insert(TsqList myTsqList, int location, char el){//将元素el插入线性表myTsqList的Location位置,若成功,返回true,否则返回false
int i = 0;
if(location < 1 || location > (myTsqList.curlen + 1) || (myTsqList.curlen == maxlen)){
return false;
}else{
myTsqList.curlen++;
for(i = myTsqList.curlen - 1; i >= location; i--){
myTsqList.elem[i] = myTsqList.elem[i - 1];
}
myTsqList.elem[location-1] = el;
return true;
}
}
char dele(TsqList myTsqList, int location){//在线性表中删除第location号元素。若成功,返回该元素,否则返回NULL
int i = 0;
char element;
if(location < 1|| location > myTsqList.curlen){
return NULL;
}else{
element = myTsqList.elem[location-1];
for(i = location; i < myTsqList.curlen; i++){
myTsqList.elem[i-1] = myTsqList.elem[i];
}
myTsqList.curlen--;
return element;
}
}
int main(){//test
TsqList myTsqList;
TsqList *p = &myTsqList;
int i;
for(i = 0; i < 5; i++){
cin>>(*p).elem[i];
}
(*p).curlen = 5;
cout<<location((*p), 'b')<<endl;
insert((*p), 3, 'k');
for(i = 0; i < (*p).curlen; i++){
cout<<(*p).elem[i]<<" ";
}
cout<<endl;
cout<<dele((*p), 3)<<endl;
for(i = 0; i < (*p).curlen; i++){
cout<<(*p).elem[i]<<" ";
}
return 0;
}
09-14
09-14
09-14
09-14
09-14
09-14