📄 sub8.cpp
字号:
#include<stdio.h>
#include<conio.h> //Se prelucreaza impreuma cu "glista.h"
#include<stdlib.h> // si "glista.cpp"
#include<ctype.h>
#include"glista.cpp"
void afis(GLista L);
int NrAtomi(GLista L);
Atom min(Glista L);
int areEqual(Glista L1,Glista L2);
void main()
{
Glista L1,L2;
clrscr();
printf("\nIntroduceti lista :\n");
L1=creareGLista();
printf("\nAtomii :");
afis(L1);
printf("\nNumarul de atomi este %d ",NrAtomi(L1));
printf("\nMinimul este %c",min(L1));
printf("\nIntroduceti a doua lista :\n");
L2=creareGLista();
if(areEqual(L1,L2)==1)
printf("\nListele sunt EGALE!");
else
printf("\nListele NU sunt EGALE!");
getch();
}
void afis(GLista L)
{
Gelement *p;
p=L;
while(p!=0)
{
if(p->tag==ATOM)
printf(" %c",p->data.L);
else
afis(p->data.L);
p=p->link;
}
}
int nr=0;
int NrAtomi(GLista L)
{
GElement *p;
p=L;
while(p!=0)
{
if(p->tag==ATOM)
nr++;
else
NrAtomi(p->data.L);
p=p->link;
}
return(nr);
}
Atom min(GLista L)
{
Atom m='z',ind;
GElement *p;
p=L;
while(p!=0)
{
if(p->tag==ATOM)
{
if(p->data.A<m)
{
ind=m;
m=p->data.A;
p->data.A=ind;
}
}
else
min(p->data.L);
p=p->link;
}
return(m);
}
int areEqual(GLista L1,GLista L2)
{
int eq;
GElement *p,*q;
p=L1;
q=L2;
while(p!=0 && q!=0)
{
if(p->tag==ATOM &&q->tag==ATOM)
{
eq=0;
if(p->data.A==q->data.A)
{
eq=1;
p=p->link;
}
else eq=0;
}
else
if(p->tag==ATOM ||q->tag==ATOM)
return(0);
else
areEqual(p->data.L,q->data.L);
q=q->link;
p=p->link;
}
return(eq);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -