Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct inteiros{
- int numero;
- struct inteiros *proximo;
- }tipo_no;
- void iniciarlista(tipo_no **inicio,int num);
- void inserirnocomeco(tipo_no **inicio,int num);
- void inserirnofinal(tipo_no **inicio,int num);
- void inserirordenado(tipo_no **inicio,int num);
- void imprimirlista(tipo_no *atual);
- void removerelemento(tipo_no *atual,num);
- int main(){
- int k,num;
- tipo_no *inicio=NULL,*atual;
- do{
- printf("\n\n");
- printf("********************************************************");
- printf("\n------------Digite uma opção----------------------------");
- printf("\n--------------------------------------------------------");
- printf("\n| (1) Inicializar lista.");
- printf("\n| (2) Inserir um elemento no começo.");
- printf("\n| (3) Inserir um elemento no final.");
- printf("\n| (4) Inserir um elemento ordenado.");
- printf("\n| (5) Remover um elemento.");
- printf("\n| (6) Verificar o tamanho da lista.");
- printf("\n| (7) Verificar média simples dos elementos da lista.");
- printf("\n| (8) Deslocar todos nós da lista.");
- printf("\n| (9) Imprimir lista");
- printf("\n| (10) Sair do programa.");
- printf("\n--------------------------------------------------------\n");
- scanf("%d",&k);
- switch (k){
- case 1: printf("Digite um numero inteiro:");
- scanf("%d",&num);
- iniciarlista(&inicio,num);
- break;
- case 2: printf("Digite um numero inteiro:");
- scanf("%d",&num);
- inserirnocomeco(&inicio,num);
- break;
- case 3: printf("Digite um numero inteiro:");
- scanf("%d",&num);
- inserirnofinal(&inicio,num);
- break;
- case 4: printf("Digite um numero inteiro:");
- scanf("%d",&num);
- inserirordenado(&inicio,num);
- break;
- case 5: printf("Digite um numero para removelo da lista:");
- scanf("%d",&num);
- removerelemento(inicio,num)
- break;
- case 9: imprimirlista(inicio);
- break;
- }
- if(k>10) {printf("\n---OPÇÃO INVALIDA---");}
- }while(k!=10);
- return 0;
- }
- void iniciarlista(tipo_no **inicio,int num){
- tipo_no *novo;
- novo=(tipo_no *) malloc(sizeof(tipo_no));
- novo->numero=num;
- novo->proximo=NULL;
- *inicio=novo;
- }
- void inserirnocomeco(tipo_no **inicio,int num){
- tipo_no *novo;
- novo=(tipo_no *) malloc(sizeof(tipo_no));
- novo->numero=num;
- novo->proximo=*inicio;
- *inicio=novo;
- }
- void imprimirlista(tipo_no *atual){
- int i;
- printf("\n\nLISTA:\n");
- while(atual!=NULL){
- printf("%d ",atual->numero);
- atual=atual->proximo;
- }
- printf("\n");
- }
- void inserirnofinal(tipo_no **inicio,int num){
- tipo_no *novo,*atual=*inicio;
- novo=(tipo_no *) malloc(sizeof(tipo_no));
- novo->numero=num;
- novo->proximo=NULL;
- if(*inicio!=NULL){
- while(atual->proximo!=NULL){
- atual=atual->proximo;
- }
- atual->proximo=novo;
- }
- else{
- *inicio=novo;
- }
- }
- void inserirordenado(tipo_no **inicio,int num){
- tipo_no *novo,*atual=*inicio,*anterior=NULL;
- novo=(tipo_no *) malloc(sizeof(tipo_no));
- novo->numero=num;
- if(*inicio!=NULL){
- while((atual != NULL) && (atual->numero < novo->numero)){
- anterior=atual;
- atual=atual->proximo;
- }
- if(anterior != NULL){
- anterior->proximo=novo;
- if(atual==NULL){
- novo->proximo=NULL;
- }
- else{
- novo->proximo=atual;
- }
- }
- else{
- novo->proximo=*inicio;
- *inicio=novo;
- }
- }
- else{
- *inicio=novo;
- novo->proximo=NULL;
- }
- }
- void removerelemento(tipo_no *atual,num){
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement