首页 > 代码库 > 作业1:顺序表的操作
作业1:顺序表的操作
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;class Seqlist{public: int last; int sz; int *data; Seqlist(int _sz=0){ ///构造函数 data = http://www.mamicode.com/new int[_sz]; last = -1; sz = _sz; } void Insert(int i, int value){ ///插入 *(data+i) = value; last = max(last, i); } void Output(){ ///输出 int i; for(i=0; i<=this->last; ++i){ cout<< (*(data+i))<< endl; } } void Sort(){ ///排序 for(int i=0; i<=last; ++i){ int k=i; for(int j=i+1; j<=last; ++j){ if(*(data+k) > *(data+j)){ int temp = j; j=k; k=temp; } } int temp = *(data+k); *(data+k) = *(data+i); *(data+i) = temp; } }};int main(){ int n,m,sum,cnt=0,x; cin>> n; Seqlist seq1(n); for(int i=0; i<n; ++i){ cin>> x; seq1.Insert(i, x); } cin>> m; Seqlist seq2(m); for(int i=0; i<m; ++i){ cin>> x; seq2.Insert(i, x); } sum = n + m; Seqlist seq(sum); int i=0,j=0; seq1.Sort(); seq2.Sort(); while(i<n && j<m){ if(*(seq1.data+i) == *(seq2.data+j)){ seq.Insert(cnt, *(seq1.data+i)); ++i; ++j; } else if(*(seq1.data+i) < *(seq2.data+j)){ seq.Insert(cnt, *(seq1.data+i)); ++i; } else{ seq.Insert(cnt, *(seq2.data+j)); ++j; } ++cnt; } while(i<n){ seq.Insert(cnt, *(seq1.data+i)); ++i; ++cnt; } while(j<m){ seq.Insert(cnt, *(seq2.data+j)); ++j; ++cnt; } seq.Output(); return 0;}
作业1:顺序表的操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。