Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct lse{
- int info;
- struct lse *prox;
- } TLSE;
- TLSE* inserel(TLSE *l, int elem);
- TLSE* inseref(TLSE *l, int elem);
- void imprimel(TLSE *l);
- void liberal(TLSE *l);
- TLSE* misc (TLSE* l, int elem);
- int main(void)
- {
- int n;
- TLSE*l=NULL;
- int op=1;
- while(op==1)
- {
- printf("Digite um numero para a lista: ");
- scanf("%d",&n);
- l=inseref(l,n);
- printf("Deseja operar novamente? 1 ou 0: ");
- scanf("%d",&op);
- }
- int i;
- printf("Lista original:\n");
- imprimel(l);
- printf("\n");
- printf("Digite um valor para a miscelania: ");
- scanf("%d",&i);
- printf("Lista modificada:\n");
- TLSE*Copia=misc(l,i);
- imprimel(Copia);
- liberal(l);
- liberal(Copia);
- return 0;
- }
- TLSE* misc (TLSE* l, int elem)
- {
- TLSE*Copia=NULL;
- TLSE*q=l;
- int i;
- while(q)
- {
- if(q->info==elem)
- {
- for(i=1;i<elem+1;i++) Copia=inseref(Copia,i);
- Copia=inseref(Copia,elem);
- for(i=1;i<elem+1;i++) Copia=inseref(Copia,i);
- }
- else Copia=inseref(Copia,q->info);
- q=q->prox;
- }
- return Copia;
- }
- TLSE* inseref(TLSE *l, int elem){
- if(!l) return inserel(l,elem);
- TLSE *novo = (TLSE *) malloc(sizeof(TLSE));
- TLSE*p=l;
- while(p->prox)p=p->prox;
- p->prox=novo;
- novo->prox = NULL;
- novo->info = elem;
- return l;
- }
- void imprimel(TLSE *l){
- TLSE *p = l;
- while(p){
- printf("%d ", p->info);
- p = p->prox;
- }
- return;
- }
- void liberal(TLSE *l){
- TLSE *p = l, *q;
- while(p){
- q = p;
- p = p->prox;
- free(q);
- }
- }
- TLSE* inserel(TLSE *l, int elem){
- TLSE *novo = (TLSE *) malloc(sizeof(TLSE));
- novo->prox = l;
- novo->info = elem;
- return novo;
- }
Add Comment
Please, Sign In to add comment