Advertisement
vittooh

Slideed

Oct 7th, 2015
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.31 KB | None | 0 0
  1.  
  2. Mensagem anteriorPróxima mensagemVoltar para as mensagens
  3. ED‏
  4. ED
  5. Ações
  6.  
  7. vitor silva
  8. 05/05/2015
  9. Para: lucasmilken@gmail.com, pedro_hmrangel@hotmail.com, Lucas Vilaboim
  10. ..
  11.  
  12.  
  13. #include<stdio.h>
  14. #include<stdlib.h>
  15. struct alunos{
  16.     int num;
  17.     struct alunos *lig;
  18. };
  19. typedef struct alunos Alunos;
  20.  
  21. typedef struct lista{
  22.     int nelem;
  23.     Alunos *head;
  24. }Lista;
  25.  
  26.  
  27. Lista* crialista(Lista* L){
  28.     L=malloc(sizeof(Lista));
  29.     L->nelem=0;
  30.     L->head=NULL;
  31.     return L;
  32. }
  33. void insereprimeiro(Lista *L,int elem){
  34.     Alunos* P;
  35.     P=malloc(sizeof(Alunos));
  36.     P->num=elem;
  37.     P->lig=L->head;
  38.     L->head=P;
  39.     L->nelem++;
  40. }
  41. void insereinicio(Lista* L,int elem){
  42.     Alunos* p;
  43.     p=malloc(sizeof(Alunos));
  44.     p->num=elem;
  45.     p->lig=L->head;
  46.     L->head=p;
  47.     L->nelem++;
  48. }
  49.  
  50. void imprimilista(Lista* L){
  51.     Alunos *p;
  52.     p=L->head;
  53.     if(p==NULL){
  54.     printf("Lista vazia\n");
  55.         return;
  56.     }
  57.     while(p!=NULL){
  58.         printf("%d\n",p->num);
  59.         p=p->lig;
  60.     }
  61. }
  62. void remove_prim(Lista *L){
  63.     Alunos* p;
  64.     p=L->head;
  65.     L->head=p->lig;
  66.     free(p);
  67.     L->nelem--;
  68. }
  69.  
  70. void removex(Lista* L, int x){
  71.     Alunos* aux=NULL;
  72.     Alunos *p;
  73.     p=L->head;
  74.     while(p!=NULL){
  75.         if(p->num!= x){//quando o elemento ta na cabeça;
  76.             aux=p;
  77.             p=p->lig;
  78.         }else{
  79.             if(aux==NULL){
  80.                 L->head=p->lig;
  81.                 free(p);
  82.                 return;
  83.             }else{
  84.                 aux->lig=p->lig;
  85.                 free(p);
  86.                 return;
  87.             }
  88.         }
  89.     }
  90. }
  91. void ordenacres(Lista* L){
  92.     Alunos* p;
  93.     p=L->head;
  94.     int x;
  95.     x=p->num;
  96.     while(p!=NULL){
  97.         if(p->num>=x){
  98.             x=p->num;
  99.             p=p->lig;
  100.         }else{
  101.             printf("não esta ordenada crescente\n");
  102.             return;
  103.         }
  104.     }
  105.     printf("Esta ordenada crescente");
  106.  
  107. }
  108. void ordenadecres(Lista* L){
  109.     Alunos* p;
  110.     p=L->head;
  111.     int x;
  112.     x=p->num;
  113.     while(p!=NULL){
  114.         if(p->num<=x){
  115.             x=p->num;
  116.             p=p->lig;
  117.         }else{
  118.             printf("não esta ordenada decrescente\n");
  119.             return;
  120.         }
  121.     }
  122.     printf("Esta ordenada decrescente\n");
  123.  
  124. }
  125. void copialista(Lista* L,Lista* L3){//deleta repetido;
  126.     int cont=0;
  127.     Alunos* p;
  128.     Alunos* aux;
  129.     aux=L3->head;
  130.     p=L->head;
  131. while(p!=NULL){
  132.     if(aux==NULL){
  133.         insereprimeiro(L3,p->num);
  134.         p=p->lig;
  135.     }else{
  136.         while(aux!=NULL){
  137.             if(p->num ==aux->num){
  138.                 cont=1;
  139.             }else{
  140.                 aux=aux->lig;
  141.             }
  142.         }
  143.         if(cont==0){
  144.             insereinicio(L3,p->num);
  145.         }
  146.     }
  147.     aux=L3->head;
  148.     p=p->lig;
  149.     }
  150. }
  151.  
  152. void insereinvertido(Lista* L,Lista* L2){
  153.     Alunos* p;
  154.     p=L->head;
  155.     while(p!=NULL){
  156.         insereinicio(L2,p->num);
  157.         p=p->lig;
  158.     }
  159. }
  160. void inserenelamsm(Lista* L){
  161.     Alunos* p;
  162.     Lista* aux;
  163.     aux=crialista(aux);
  164.     Alunos* q;
  165.     p=L->head;
  166.     while(p!=NULL){
  167.         insereinicio(aux,p->num);
  168.         p=p->lig;
  169.     }
  170.     q=aux->head;
  171.     p=L->head;
  172.     while(q!=NULL && p!=NULL){
  173.         p->num=q->num;
  174.         p=p->lig;
  175.         q=q->lig;
  176.     }
  177. }
  178.  
  179. void intercalalista(Lista* L,Lista* L2,Lista* L3){
  180.     Alunos* p;
  181.     Alunos* q;
  182.     Alunos* aux;
  183.     p=L->head;
  184.     q=L2->head;
  185.     while(p!=NULL && q!=NULL){
  186.         insereinicio(L3,p->num);
  187.         insereinicio(L3,q->num);
  188.         p=p->lig;
  189.         q=q->lig;
  190.     }
  191. }
  192.  
  193. int main(){
  194.     Lista* L;
  195.     Lista* L2;
  196.     Lista* L3;
  197.     L3=crialista(L3);
  198.     L=crialista(L);
  199.     insereprimeiro(L,3);
  200.     insereinicio(L,4);
  201.     insereinicio(L,3);
  202.     insereinicio(L,6);
  203.     imprimilista(L);
  204.     printf("\n");
  205.     imprimilista(L);
  206.     ordenacres(L);
  207.     ordenadecres(L);
  208.     imprimilista(L2);
  209.     L3=crialista(L3);
  210.     copialista(L,L3);
  211.     imprimilista(L3);
  212.     L2=crialista(L2);
  213.     insereinvertido(L,L2);
  214.     imprimilista(L2);
  215.     printf("\n");
  216.     inserenelamsm(L);
  217.     imprimilista(L);
  218.     L2=crialista(L2);
  219.     insereprimeiro(L2,3);
  220.     insereinicio(L2,4);
  221.     insereinicio(L2,3);
  222.     insereinicio(L2,6);
  223.     imprimilista(L2);
  224.     intercalalista(L,L2,L3);
  225.     printf("\n");
  226.     imprimilista(L3);
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement