sub03.cpp
来自「STRUCTURI DE DATE SI ALGORITMI」· C++ 代码 · 共 120 行
CPP
120 行
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef int Atom;
struct Element
{
Atom data;
Element* link;
};
void InitLista(Element*& cap);
void InserareFata(Element*& cap,Atom a);
void AfisareLista(Element* cap);
int CautareElement(Element*& cap,int n);
void StergereElement(Element*& cap,int n);
void main()
{
int n, x, poz;
Element *cap,*l;
clrscr();
InitLista(cap);
printf("\tIntroduceti elementele listei pe o linie separate de spatii\
(sirul se\nincheie cu valoarea 0):\n\t");
scanf("%d",&n);
while(n!=0)
{
InserareFata(cap,n);
scanf("%d",&n);
}
printf("\n\tAm citit : ");
AfisareLista(cap);
printf("\n\tIntroduceti valoarea de cautat:");
scanf("%d",&x);
if(CautareElement(cap,x))
printf("\n\tValoarea %d se afla in lista!",x);
else
printf("\n\tValoarea %d nu se afla in lista!",x);
printf("\n\tIntroduceti pozitia elementului de sters:");
scanf("%d",&poz);
StergereElement(cap,poz);
printf("\n\tLista actualizata:");
AfisareLista(cap);
printf("\n\n\t\t\t ---- T H E E N D ----\n");
getch();
}
void InitLista(Element*& cap)
{
cap=0;
}
void InserareFata(Element*& cap,Atom a)
{
Element *p;
p=new Element;
p->data=a;
p->link=cap;
cap=p;
}
void AfisareLista(Element* cap)
{
Element *p;
p=cap;
while(p!=0)
{
printf(" %d",p->data);
p=p->link;
}
}
int CautareElement(Element*& cap,int n)
{
Element *p;
p=cap;
while(p!=0)
{
if(p->data==n)
return 1;
p=p->link;
}
return 0;
}
void StergereElement(Element*& cap,int n)
{
int c=0;
Element *p,*q;
p=cap;
while(p!=0)
{
c++;
if(n<=0)
{
printf("\n\tEroare, stergere in lista vida");
getch();
exit(1);
}
else
if(n==1) //stergere in fata
{
p=cap;
cap=cap->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 + -
显示快捷键?