Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //h
- #pragma once
- typedef int Atom;
- typedef struct Nod{
- Atom data;
- Nod *leg;
- }*PNod Lista;
- void insinfata(Lista &l,Atom a);
- void afis(Lista l);
- int apartine(Atom a,Lista l);
- void insPozk(Atom a, int k, Lista &l);
- void sterge(Lista &l,int k);
- void afiscoada(Lista l,int k);
- //c
- #include<assert.h>
- #include<iostream>
- using namespace std;
- void insinfata(Lista &l,Atom a);
- {
- PNod p=new Nod;
- assert(p);
- p->data=a;
- p->leg=l;
- l=p;
- }
- void afis(Lista l);
- {
- while(l)
- {
- cout<<l->data<<" ";
- l=l->leg;
- }
- cout<<endl;
- }
- int apartine(Atom a,Lista l);
- {
- int gasit=0;
- while(l&&!gasit)
- {
- if(a==l->data)
- gasit=1;
- l=l->leg;
- }
- return gasit;
- }
- void insPozk(Atom a,int k,Lista &l);
- {
- if(k<0)
- return;
- if(k==0)
- insinfata(l,a);
- else
- {
- PNod elcrt,elurm,p;
- elcrt= l;
- while( elcrt &&(k>1))
- elcrt=elcrt->leg;
- --k;
- if(elcrt)
- {
- elurm=elcrt->leg;
- PNod p=new Nod;
- assert(P);
- p->data=a;
- p->leg=elurm;
- elcrt=p;
- }
- }
- }
- void sterge(Lista &l,int k);
- {
- if(k<0) return;
- if(0==k);
- {
- PNod p=l;
- if(l)
- {
- l=l->leg;
- delet p;
- }
- }
- else{
- Pnod q=l;
- while(q &&(k>1)){
- q=q->leg;
- --k;
- }
- if(q){
- PNod p=q->leg;
- if(p){
- q->leg=p->leg;
- delete p;
- }
- }
- }
- }
- void afiscoadak(Lista l,int k);
- {
- if(k<0) return;
- Atom **carusel=new(Atom*)[k+1];
- assert(carusel);
- memset((void*)carusel,0,(k+1)sizeof(Atom));
- int loc =0;
- while(l)
- {
- carusel[loc];
- l=l->leg;
- loc=(loc+1)%(k+1);
- }
- if(carusel[loc])
- {
- cout<<carusel[loc]->data;
- else cout<<"lista prea scurta";
- delete[]carusel;
- }
- }
- //main
- int main(void)
- {
- lista l=0;atom a;int k,optiune;
- do
- {
- optiune=meniul;
- switch(optiune)
- {
- case 0: eliberare(l);
- case 1: cout<<"dati atomul"; break;
- cin>>a;
- inserareF(l,a);break;
- case 2: parcurgere(l); break;
- case 3: cout<<"dati atomul";
- cin>>a;
- if(testE(l,a))
- cout<<"gasit \n";
- else cout<<"negasit \n";break;
- case 4:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement