Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Mensagem anteriorPróxima mensagemVoltar para as mensagens
- ED
- ED
- Ações
- vitor silva
- 05/05/2015
- Para: lucasmilken@gmail.com, pedro_hmrangel@hotmail.com, Lucas Vilaboim
- ..
- #include<stdio.h>
- #include<stdlib.h>
- struct alunos{
- int num;
- struct alunos *lig;
- };
- typedef struct alunos Alunos;
- typedef struct lista{
- int nelem;
- Alunos *head;
- }Lista;
- Lista* crialista(Lista* L){
- L=malloc(sizeof(Lista));
- L->nelem=0;
- L->head=NULL;
- return L;
- }
- void insereprimeiro(Lista *L,int elem){
- Alunos* P;
- P=malloc(sizeof(Alunos));
- P->num=elem;
- P->lig=L->head;
- L->head=P;
- L->nelem++;
- }
- void insereinicio(Lista* L,int elem){
- Alunos* p;
- p=malloc(sizeof(Alunos));
- p->num=elem;
- p->lig=L->head;
- L->head=p;
- L->nelem++;
- }
- void imprimilista(Lista* L){
- Alunos *p;
- p=L->head;
- if(p==NULL){
- printf("Lista vazia\n");
- return;
- }
- while(p!=NULL){
- printf("%d\n",p->num);
- p=p->lig;
- }
- }
- void remove_prim(Lista *L){
- Alunos* p;
- p=L->head;
- L->head=p->lig;
- free(p);
- L->nelem--;
- }
- void removex(Lista* L, int x){
- Alunos* aux=NULL;
- Alunos *p;
- p=L->head;
- while(p!=NULL){
- if(p->num!= x){//quando o elemento ta na cabeça;
- aux=p;
- p=p->lig;
- }else{
- if(aux==NULL){
- L->head=p->lig;
- free(p);
- return;
- }else{
- aux->lig=p->lig;
- free(p);
- return;
- }
- }
- }
- }
- void ordenacres(Lista* L){
- Alunos* p;
- p=L->head;
- int x;
- x=p->num;
- while(p!=NULL){
- if(p->num>=x){
- x=p->num;
- p=p->lig;
- }else{
- printf("não esta ordenada crescente\n");
- return;
- }
- }
- printf("Esta ordenada crescente");
- }
- void ordenadecres(Lista* L){
- Alunos* p;
- p=L->head;
- int x;
- x=p->num;
- while(p!=NULL){
- if(p->num<=x){
- x=p->num;
- p=p->lig;
- }else{
- printf("não esta ordenada decrescente\n");
- return;
- }
- }
- printf("Esta ordenada decrescente\n");
- }
- void copialista(Lista* L,Lista* L3){//deleta repetido;
- int cont=0;
- Alunos* p;
- Alunos* aux;
- aux=L3->head;
- p=L->head;
- while(p!=NULL){
- if(aux==NULL){
- insereprimeiro(L3,p->num);
- p=p->lig;
- }else{
- while(aux!=NULL){
- if(p->num ==aux->num){
- cont=1;
- }else{
- aux=aux->lig;
- }
- }
- if(cont==0){
- insereinicio(L3,p->num);
- }
- }
- aux=L3->head;
- p=p->lig;
- }
- }
- void insereinvertido(Lista* L,Lista* L2){
- Alunos* p;
- p=L->head;
- while(p!=NULL){
- insereinicio(L2,p->num);
- p=p->lig;
- }
- }
- void inserenelamsm(Lista* L){
- Alunos* p;
- Lista* aux;
- aux=crialista(aux);
- Alunos* q;
- p=L->head;
- while(p!=NULL){
- insereinicio(aux,p->num);
- p=p->lig;
- }
- q=aux->head;
- p=L->head;
- while(q!=NULL && p!=NULL){
- p->num=q->num;
- p=p->lig;
- q=q->lig;
- }
- }
- void intercalalista(Lista* L,Lista* L2,Lista* L3){
- Alunos* p;
- Alunos* q;
- Alunos* aux;
- p=L->head;
- q=L2->head;
- while(p!=NULL && q!=NULL){
- insereinicio(L3,p->num);
- insereinicio(L3,q->num);
- p=p->lig;
- q=q->lig;
- }
- }
- int main(){
- Lista* L;
- Lista* L2;
- Lista* L3;
- L3=crialista(L3);
- L=crialista(L);
- insereprimeiro(L,3);
- insereinicio(L,4);
- insereinicio(L,3);
- insereinicio(L,6);
- imprimilista(L);
- printf("\n");
- imprimilista(L);
- ordenacres(L);
- ordenadecres(L);
- imprimilista(L2);
- L3=crialista(L3);
- copialista(L,L3);
- imprimilista(L3);
- L2=crialista(L2);
- insereinvertido(L,L2);
- imprimilista(L2);
- printf("\n");
- inserenelamsm(L);
- imprimilista(L);
- L2=crialista(L2);
- insereprimeiro(L2,3);
- insereinicio(L2,4);
- insereinicio(L2,3);
- insereinicio(L2,6);
- imprimilista(L2);
- intercalalista(L,L2,L3);
- printf("\n");
- imprimilista(L3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement