表和顺序表 DS/定位元素tem的位置,返回值为tem在顺序表中的位置: 返回值为-1表示不存在 int Seqlist: Find(Data Type& item) const 算fs size==0) return-1 机学院信 int i=0: while(i< size & item ! datal [i]) i+;/1找iem 自f(i<sze) k return l' // return True 教研室 else return-1;// return False lixuejun@swust.edu.cn
lixuejun@swust.edu.cn 表和顺序表 //定位元素item的位置,返回值为item在顺序表中的位置; 返回值为-1表示不存在 int SeqList::Find(DataType& item) const { if(size == 0) return -1; int i = 0; while (i < size && item != data[i]) i++; //寻找item if (i < size) return i; // return True else return -1; // return False } 计 算 机 学 院 信 息 教 研 室 DS
表和顺序表 DS 返回顺序表中位置pos上的元素。参数出错时退出 Data type seqList: GetData(int pos) const 计算机学院信息教 取的元素序号必须在0至se-1之间 if(pos<0 pos>size-1) cer<<"参数pos越界出错!"<<endl exit (1) 研 return datalpos]; 室 lixuejun@swust.edu.cn
lixuejun@swust.edu.cn 表和顺序表 //返回顺序表中位置pos上的元素。参数出错时退出 DataType SeqList::GetData(int pos) const { //取的元素序号必须在0至size-1之间 if (pos < 0 || pos > size-1) { cerr << "参数pos越界出错!" << endl; exit(1); } return data[pos]; } 计 算 机 学 院 信 息 教 研 室 DS
线性表的插入和删除 1、线性表的插入操作 (a1,a2r. ai-1,air.an)---->(a1, a2, b a -10in n 序数据数据序 号元素元素号 2 23456 12356 2345 123456 6 般地,在第个数据元素之前插入一个元素时,需 要将第n至第个元素向后移动一个位置。此时,需移动 位置的元素个数为n+1个
线性表的插入和删除 1、线性表的插入操作 (a1 ,a2 ,…ai-1 ,ai ,…an )----->(a1 ,a2 ,…ai-1 ,b,ai ,…an ) 一般地,在第i个数据元素之前插入一个元素时,需 要将第n至第i个元素向后移动一个位置。此时,需移动 位置的元素个数为 n-i+1个
算法思想 ①进行合法性检査,1<=i<=n+1; ②判断线性表是否已满; ③将第n个至第个元素逐一后移一个单元; ④在第i个位置处插入新元素; ⑤将表的长度加1 lixuejun@swust.edu.cn
lixuejun@swust.edu.cn 算法思想: ① 进行合法性检查,1<=i<=n+1; ② 判断线性表是否已满; ③ 将第n个至第i个元素逐一后移一个单元; ④ 在第i个位置处插入新元素; ⑤ 将表的长度加1
表和顺序表 1在指定位置pos处插入一个数据元素tem DSY void SeqList: Insert(const Data Type& item, int pos) if (size==MaxListsize) 计算机学院信息教 cer<顺序表已满无法插入!"<<end; exit(1 if(pos<O|lpos>size)∥当pos等于sze时表示插入在最后 cout<<"参数pos越界出错!"; 研 exit(1) 室 lixuejun@swust.edu.cn
lixuejun@swust.edu.cn 表和顺序表 //在指定位置pos处插入一个数据元素item void SeqList::Insert(const DataType& item,int pos) { if (size==MaxListSize) { cerr<<"顺序表已满无法插入!"<<endl; exit(1); } if (pos<0||pos>size)//当pos等于size时表示插入在最后 { cout<<"参数pos越界出错!"; exit(1); } 计 算 机 学 院 信 息 教 研 室 DS