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 + -
显示快捷键?