C++用链表实现堆栈的操作问题
答案:2 悬赏:40
解决时间 2021-02-14 07:03
- 提问者网友:萌萌小主
- 2021-02-13 09:01
C++用链表实现堆栈的操作问题
最佳答案
- 二级知识专家网友:时光不老我们不分离
- 2021-02-13 10:01
#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();
}
给你个我的程序吧,你对照改就是了
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
SortedList
SortedList
void Output() const;
private:
int length;
int MaxSize;
E *element; // dynamic 1D array
};
template
SortedList
MaxSize=MaxListSize;
element=new E[2*MaxSize];
cout<<"input MaxSize number:"<
int k;
cin>>k;
element[i]=k;
}
length=MaxSize;
}
template
bool SortedList
int i=0;
while(i
i++;
if(i>=length||k!=element[i])
return false;
e=element[i];
return true;
}
template
SortedList
int i=0;
while(i
i++;
e=element[i];
for(int j=i+1;j
length--;
return *this;
}
template
SortedList
int i=0;
while(i
i++;
element[i]=e;
for(int j=length-1;j>=i;j--)
element[j+1]=element[j];
length++;
return *this;
}
template
SortedList
int i=0;
while(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
for(int i=0;i
int main(){
int e;
SortedList
C.Output();
C.Insert(12).Insert(12).Insert(10);
C.Output();
C.Delete(1,e);
C.Output();
}
给你个我的程序吧,你对照改就是了
全部回答
- 1楼网友:心与口不同
- 2021-02-13 11:02
这个要写的话太长了,我把我以前写的一个给你吧,当然某些功能实现和你说字段名都是不一样的!
#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
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |