#include<iostream>
#include<time.h>
using namespace std;
typedef struct arcnode
{
int adjvex;
struct arcnode *next;
}arcnode;
typedef struct vncode
{
arcnode *firstvex;
char data;
}vncode;
typedef struct
{
vncode verties[100];
int vexnum,arcnum;
}algraph;
int u[9],v[9];
void create(algraph &g)
{
FILE *fp=fopen("C:\\Users\\32401\\Desktop\\123.txt","r");
fscanf(fp,"%d%d",&g.vexnum,&g.arcnum);
for(int i=0;i<g.vexnum;i++)
{
int x;
fscanf(fp,"%d:%c",&x,&g.verties[i].data);
g.verties[i].firstvex=NULL;
}
fclose(fp);
FILE *pff=fopen("C:\\Users\\32401\\Desktop\\123.txt","a");
for(int i=0;i<g.arcnum;i++)
{
//fprintf(pff,"%d %d\n",u[i],v[i]);
arcnode *s1=(arcnode *)malloc(sizeof(arcnode));
arcnode *s2=(arcnode *)malloc(sizeof(arcnode));
s1->adjvex=u[i];
s1->next=g.verties[v[i]].firstvex;
g.verties[v[i]].firstvex=s1;
s2->adjvex=v[i];
s2->next=g.verties[u[i]].firstvex;
g.verties[u[i]].firstvex=s2;
}
fclose(pff);
FILE *pf=fopen("C:\\Users\\32401\\Desktop\\123.txt","a");
for(int i=0;i<g.vexnum;i++)
{
arcnode* p=g.verties[i].firstvex;
while(p)
{
fprintf(pf,"(%c,%c)",g.verties[i].data,g.verties[p->adjvex].data);
cout<<'('<<g.verties[i].data<<','<<g.verties[p->adjvex].data<<')';
p=p->next;
}
fprintf(pf,"\n");
printf("\n");
}
}
int main()
{
int n,m;
FILE *fp=fopen("C:\\Users\\32401\\Desktop\\123.txt","a");
cin>>n>>m;
fprintf(fp,"%d %d\n",n,m);
srand(time(0));
int visited[1000];
int num=0;
while(num<5)
{
char x=rand()%26;
if(!visited[x])
{
visited[x]=1;
num++;
fprintf(fp,"%d:%c\n",num-1,x+'a');
}
}
fclose(fp);
for(int i=0;i<m;i++)
{
cin>>u[i]>>v[i];
}
algraph g;
create(g);
}
#include<iostream>
using namespace std;
typedef struct bitnode
{
char data;
struct bitnode *l,*r;
}bitnode,*bitree;
typedef struct
{
bitree data[1000];
int top;
}stack;
int empty(stack *s)
{
if(s->top==-1)
{
return 1;
}
return 0;
}
void init(stack *s)
{
s->top=-1;
}
void push(stack *s,bitree t)
{
if(s->top==999)
{
return;
}
s->data[++(s->top)]=t;
}
void pop(stack *s,bitree *t)
{
if(s->top==-1)
{
return;
}
*t=s->data[(s->top)--];
}
int insert(bitree &t,char k)
{
if(t==NULL)
{
t=(bitree)malloc(sizeof(bitnode));
t->l=t->r=NULL;
t->data=k;
return 1;
}
else if(t->data==k)
{
return 0;
}
else if(t->data>k)
{
return insert(t->l,k);
}
else if(t->data<k)
{
return insert(t->r,k);
}
}
void create(bitree &t)
{
t=NULL;
FILE *fp=fopen("C:/Users/Administrator/Desktop/11.txt","r");
char c;
for(int i=1;i<=10;i++)
{
if(i!=10)
{
fscanf(fp,"%c,",&c);
}
else
{
fscanf(fp,"%c",&c);
}
insert(t,c);
}
fclose(fp);
}
char str[11];
void mid(bitree t)
{
int num=0;
stack s;
init(&s);
bitree p=t;
while(p||!empty(&s))
{
if(p)
{
push(&s,p);
p=p->l;
}
else
{
pop(&s,&p);
num++;
str[num]=p->data;
//fprintf(pf,"%c",p->data);
p=p->r;
}
}
}
int main()
{
FILE *pf=fopen("C:/Users/Administrator/Desktop/22.txt","w");
FILE *fp=fopen("C:/Users/Administrator/Desktop/11.txt","w");
srand(time(0));
int num=0;
int visit[1000]={0};
while(num<10)
{
char x=rand()%26+'A';
if(!visit[x])
{
num++;
visit[x]=1;
if(num!=10)
{
fprintf(fp,"%c,",x);
}
else
{
fprintf(fp,"%c",x);
}
}
}
fclose(fp);
bitree t;
create(t);
mid(t);
for(int i=1;i<=10;i++)
{
if(i!=10)
{
fprintf(pf,"%c,",str[i]);
}
else
{
fprintf(pf,"%c",str[i]);
}
}
}