Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct lista {
- float info;
- struct lista* prox;
- } Lista;
- Lista* lista_cria() {
- return NULL;
- }
- Lista* lista_insere (Lista* l, int i) {
- Lista* novo = (Lista*) malloc(sizeof(Lista));
- novo->info = i;
- novo->prox = l;
- return novo;
- }
- void lista_imprime (Lista* l) {
- Lista* p; /* variavel auxiliar para percorrer a lista */
- for (p = l; p != NULL; p = p->prox)
- printf("info = %f\n", p->info);
- }
- int comprimento (Lista* l) {
- Lista* p; /* variavel auxiliar para percorrer a lista */
- int cont=0;
- for (p = l; p != NULL; p = p->prox)
- cont++;
- return cont;
- }
- int maiores (Lista* l, int n) {
- Lista* p; /* variavel auxiliar para percorrer a lista */
- int cont=0;
- for (p = l; p != NULL; p = p->prox) {
- if(p->info > n)
- cont++;
- }
- return cont;
- }
- Lista* ultimo (Lista* l) {
- Lista* p = l; /* variavel auxiliar para percorrer a lista */
- while (p->prox != NULL) {
- p = p->prox;
- }
- return p;
- }
- /* concatena modificando l1 */
- Lista* concatena (Lista* l1, Lista* l2)
- {
- Lista* p; /* variável auxiliar para percorrer a lista */
- Lista* q; /* variável auxiliar para criar a nova lista */
- if (l1 == NULL) return l2;
- p = l1;
- do
- {
- q = p;
- p = p->prox;
- }
- while(p != NULL);
- q->prox = l2;
- return l1;
- }
- main() {
- Lista* l;
- int n;
- l = lista_cria();
- l = lista_insere(l, 23);
- l = lista_insere(l, 45);
- l = lista_insere(l, 67);
- l = lista_insere(l, 89);
- l = lista_insere(l, 1011);
- lista_imprime(l);
- printf("\nA lista possui %f eltos\n", comprimento(l));
- printf("\nEntre com n: ");
- scanf("%d",&n);
- printf("\nHa %f eltos maiores que %f\n", maiores(l,n), n);
- printf("\nCampo info do ultimo no: %f\n", ultimo(l)->info);
- printf("\n");
- printf("\nLista concatenada: %f",concatena(l1));
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement