📄 stack1.h
字号:
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
const int maxsize=10000;
const int size=4;
int size1=3;
struct node{
int precost;
int nextcost;
int pos;
int ch1[size*size];
int pre;
int id;
void show(){
for(int i=0;i<size1*size1;i++)
{
cout<<ch1[i]<<" ";
if((i+1)%size1==0)
cout<<endl;
}
}
};
node arr[maxsize];
int chbak[size*size],ch[size*size],chdes[size*size];
class stack
{
private:
node *data[maxsize];
int top;
public:
stack(){top=0;}
int getsize(){return top;}
void insert(node *elem)//有序插入,open表的插入
{
if(top>=maxsize)
{
cout<<"stack flow!"<<endl;
exit(0);
}
else
{
int flag=top;
while(flag>0&&(elem->precost+elem->nextcost)>(data[flag-1]->precost+data[flag-1]->nextcost))
{
data[flag]=data[flag-1];
flag--;
}
data[flag]=elem;
top++;
}
}
void insert1(node *elem)//closed表插入
{
if(top>=maxsize)
{
cout<<"stack flow!"<<endl;
exit(0);
}
else
{
data[top]=elem;
top++;
}
}
node *del()
{
if(top<=0)
{
cout<<"stack is empty!"<<endl;
exit(0);
}
else
{
node *temp=data[top-1];
top--;
return temp;
}
}
int isempty()
{
return top<=0;
}
int cmp(node *node1)//比较状态
{
for(int i=0;i<top;i++)
{
int flag=1;
for(int j=0;j<size1*size1;j++)
if(node1->ch1[j]!=data[i]->ch1[j])
{
flag=0;
break;
}
if(flag)
return 1;
}
return 0;
}
void clear()
{
top=0;
}
};
void author()
{
char lwq[50]="挒洑邼嗊憸殢娺晫曄褪哌=!1O8@哌*:*'/?";
cout<<" ";
for(int i=0;i<int(strlen(lwq));i++)
cout<<char(255-int(lwq[i]));
cout<<endl;
}
void select()
{
cout<<" 请选择你要操作的选项!"<<endl;
cout<<" 一:随机方式(按1) 二:手工方式(按2) 三:选择问题规模(按3)"<<endl;
cout<<" 四:清屏(按4) 五:退出(其他"<<endl;
}
int jiecheng(int n)
{
int sum=1;
for(int i=1;i<=n;i++)
sum*=n;
return sum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -