中易网

C++用链表实现堆栈的操作问题

答案:2  悬赏:40  
解决时间 2021-02-14 07:03
C++用链表实现堆栈的操作问题
最佳答案
#include

using namespace std;

template
class SortedList{
public:
SortedList(int MaxListSize=10);
~SortedList(){delete []element;}
bool IsEmpty()const {return length==0;}
bool Search(const K&k,E&e)const;
SortedList& Delete(const K& k, E& e);
SortedList& Insert(const E& e);
SortedList& DistinctInsert(const E& e);
void Output() const;
private:
int length;
int MaxSize;
E *element; // dynamic 1D array
};
template
SortedList::SortedList(int MaxListSize){
MaxSize=MaxListSize;
element=new E[2*MaxSize];
cout<<"input MaxSize number:"< for(int i=0;i {
int k;
cin>>k;
element[i]=k;
}
length=MaxSize;
}
template
bool SortedList::Search(const K&k,E&e)const{
int i=0;
while(ielement[i])
i++;
if(i>=length||k!=element[i])
return false;
e=element[i];
return true;
}
template
SortedList&SortedList::Delete(const K& k, E& e){
int i=0;
while(ielement[i])
i++;
e=element[i];
for(int j=i+1;j element[j-1]=element[j];
length--;
return *this;
}
template
SortedList&SortedList::Insert(const E&e){
int i=0;
while(ielement[i])
i++;
element[i]=e;
for(int j=length-1;j>=i;j--)
element[j+1]=element[j];
length++;
return *this;
}
template
SortedList&SortedList::DistinctInsert(const E& e){
int i=0;
while(i i++;
//if(e=element[i])
//throw BadInput();
element[i]=e;
for(int j=length-1;j>=i;j--)
element[j+1]=element[j];
length++;
return *this;
}
template
void SortedList::Output()const{
for(int i=0;i cout< cout< }

int main(){
int e;
SortedList C(10);
C.Output();
C.Insert(12).Insert(12).Insert(10);
C.Output();
C.Delete(1,e);
C.Output();

}

给你个我的程序吧,你对照改就是了
全部回答
这个要写的话太长了,我把我以前写的一个给你吧,当然某些功能实现和你说字段名都是不一样的! #include #include #include void guanli();//管理员文件 void zhu();//查询主函数 void nianca(); void mingca(); void banca(); void xingca(); void xueca(); void zhucaidan(); void tianjia(); void shezhixinxi(); void cunxinxi(); void tian(); void quanbushanchu(); void xingbieshanchu(); void banjishanchu(); void mougeshanchu(); void fugai(); void wenjian(); void shanchu(); struct xuesheng { char name[20]; char xingbie[3]; int age; int banji; char tel[20]; int hao; }; typedef struct xuesheng xue; xue str; file *fp=null; int no=1; void main() { int a; printf("\t华育国际学生档案库\n请选择:\n"); while(1) { printf("1 管理员\n2 用户\n3 退出\n"); scanf("%d",&a); switch(a) { case 1:guanli(); zhucaidan(); break; case 2:zhu(); break; case 3: exit(0); default: printf("请重新选择!\n"); } } } void guanli() { char mima[]={0,0,0,0,0,0}; char mi[6]; for(int i=0;i<3;i++) { printf("请输入你的管理员密码(6位):"); scanf("%s",mi); if(strcmp(mima,mi)==0) { printf("密码正确!\n"); return; } else { printf("密码不正确,请重新输入:\n"); } } printf("三次密码错误,系统即将退出。\n"); exit(0); } void zhucaidan() { int a; while(1) { printf("\t主菜单\n1 添加\n2 删除\n3 查询\n4 退出\n"); scanf("%d",&a); switch(a) { case 1:tian(); break; case 2:shanchu(); break; case 3:zhu(); break; case 4: exit(0); default: printf("请重新选择!\n"); } } } void zhu() { int a; while(1) { printf("1 以年龄查询\n2 以姓名查询\n3 以班级查询\n4 以性别查询\n5 以学号查询\n6 退出系统\n"); fflush(stdin); scanf("%d",&a); switch(a) { case 1:nianca(); break; case 2:mingca(); break; case 3:banca(); break; case 4:xingca(); break; case 5:xueca(); break; case 6:exit(0); default: printf("请重新选择!\n"); break; } } } void nianca() { int nianling,a=0; printf("请输入你要查询的年龄:\n"); fflush(stdin); scanf("%d",&nianling); fp=fopen("wenjian.txt","rb+"); while(!feof(fp)) { fread(&str,sizeo
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英语千分之几怎么说
倒着的z怎么打 求解
野三坡金帛农家院地址在什么地方,想过去办事
销售技巧和话术视频
婚礼酒席上有什么方法刁难新郎新娘呢?
我妈妈死,是我没有照顾好他,害他死了,我痛
什么,我是德国的主战坦克?什么,我每分钟35
铁销扎进肉里,看不见,挑不出,现在化脓了
没有分值怎么下载文档
PS4折纸小邮差 怎么切换中文
8086CPU是多少位的的处理器?
有个人去买葱 问葱多少钱一斤 卖葱的人说 1
27岁了想转行,现在做的经理助理,大学是工商
fortran90与fortran95的具体区别,用95学习90
雅米生活馆地址有知道的么?有点事想过去
推荐资讯
士不可以不弘毅,任重而道远。人以为己任,不亦
华硕M5-A78L LE这款主板怎么样?还有华硕显
利兴五金店这个地址在什么地方,我要处理点事
三百万的项目我投资十万 我有多少股份?
现在市场上有飓风战魂战神级陀螺吗,列如,巨
杰克·狼人牛仔专卖这个地址在什么地方,我要
雷神st plus没有flexikey怎么回事
为什么开QQ农场的时候会跳到别的网页?
王思聪这逼有什么资本叫国民老公
你好我今天突然发现我的头发掉了一大片请问什
我家路由器是水星Mw310R它的帐号和密码是多少
iOS11.1好不好用 iOS11.1更新了什么值得升级
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?