Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdbool.h>
- #include <stdio.h>
- typedef struct ListaElem {
- int adat;
- struct ListaElem *kov;
- } ListaElem;
- /* létrehoz egy listát, benne egy csomó számmal */
- ListaElem *lista_letrehoz(void) {
- int szamok[] = { 8, 14, 13, 17, 1, 19, 16, 5, 3, 11, 2,
- 15, 9, 10, 6, 22, 4, 7, 18, 27, -1 };
- ListaElem *lis = NULL;
- for (int i = 0; szamok[i] != -1; ++i) {
- ListaElem *u;
- u = (ListaElem*) malloc(sizeof(ListaElem));
- u->kov = lis;
- u->adat = szamok[i];
- lis = u;
- }
- return lis;
- }
- void kiir(ListaElem *eleje){
- ListaElem *mozgo = eleje;
- while (mozgo != NULL){
- printf("%d ", mozgo->adat);
- mozgo = mozgo->kov;
- }
- }
- int meret(ListaElem *eleje){
- int meret = 0;
- ListaElem *mozgo = eleje;
- while (mozgo != NULL){
- mozgo = mozgo->kov;
- meret++;
- }
- return meret;
- }
- void felszab(ListaElem *eleje){
- ListaElem *mozgo = eleje;
- ListaElem *mozgokov = mozgo->kov;
- while (mozgo->kov != NULL){
- free(mozgo);
- mozgo = mozgokov;
- mozgokov = mozgokov->kov;
- }
- free(mozgo);
- }
- ListaElem *beszurEleje(ListaElem *eleje, int szam){
- ListaElem * tmp = (ListaElem*)malloc(sizeof(ListaElem));
- tmp->adat = szam;
- if(eleje == NULL){
- tmp->kov = NULL;
- }
- else{
- tmp->kov = eleje;
- }
- return tmp;
- }
- ListaElem *beszurVege(ListaElem *eleje, int szam){
- ListaElem *mozgo = eleje;
- ListaElem *lemarad = NULL;
- ListaElem *tmp = (ListaElem*)malloc(sizeof(ListaElem));
- tmp->adat = szam;
- tmp->kov = NULL;
- bool elso = true;
- while(mozgo != NULL){
- lemarad = mozgo;
- mozgo = mozgo->kov;
- elso = false;
- }
- if(!elso)
- lemarad->kov = tmp;
- return elso ? tmp : eleje;
- }
- ListaElem *keres(ListaElem *eleje, int szam){
- ListaElem *mozgo = eleje;
- while(mozgo != NULL && szam != mozgo->adat){
- mozgo = mozgo->kov;
- }
- return mozgo;
- }
- int main(void) {
- ListaElem *eleje;
- eleje = lista_letrehoz();
- eleje = beszurEleje(eleje, 21);
- eleje = beszurVege(eleje, 0);
- kiir(eleje);
- printf("\nMeret: %d\n", meret(eleje));
- printf("Keresett elem pointere: %p\n",keres(eleje, 19));
- printf("Keresett elem pointere: %p\n",keres(eleje, 190));
- felszab(eleje);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement