sub3.cpp
来自「STRUCTURI DE DATE SI ALGORITMI」· C++ 代码 · 共 127 行
CPP
127 行
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef int Atom;
struct Element
{
Atom data;
struct Element* link;
};
typedef Element* Lista;
void eroare(char s[]);
void initlist(Element*& l);
void insf(Element*& l,Atom a);
void afis(Element* l);
int caut(Element*& l,int n);
void del(Element*& l,int n);
void main()
{
char s[30];
int n,x,poz;
Element *cap,*l;
clrscr();
initlist(cap);
printf("\nIntroduceti elementele listei :\n");
scanf("%d",&n);
while(n!=0)
{
insf(cap,n);
scanf("%d",&n);
}
printf("\nAm citit : ");
afis(cap);
printf("\nIntroduceti valoarea cautata : ");
scanf("%d",&x);
if(caut(cap,x))
printf("\nValoarea %d este in lista!",x);
else
printf("\nValoarea %d NU este in lista!",x);
printf("\nIntroduceti pozitia elementului de sters : ");
scanf("%d",&poz);
del(cap,poz);
printf("\nLista actualizata : ");
afis(cap);
getch();
}
void eroare(char s[])
{
clrscr();
printf("\n\t\t\tEROARE! %s!",s);
getch();
exit(1);
}
void initlist(Element*& l)
{
l=0;
}
void insf(Element*& l,Atom a)
{
Element *p;
p=new Element;
p->data=a;
p->link=l;
l=p;
}
void afis(Element* l)
{
Element *p;
p=l;
while(p!=0)
{
printf(" %d",p->data);
p=p->link;
}
}
int caut(Element*& l,int n)
{
Element *p;
p=l;
while(p!=0)
{
if(p->data==n)
return 1;
p=p->link;
}
return 0;
}
void del(Element*& l,int n)
{
int c=0;
Element *p,*q;
p=l;
while(p!=0)
{
c++;
if(n<=0)
eroare("Stergere in lista vida");
else
if(n==1) //stergere in fata
{
p=l;
l=l->link;
delete(p);
break;
}
else
if((n-1)==c)
{
q=p->link;
p->link=q->link;
delete(q);
}
p=p->link;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?