Új hozzászólás Aktív témák

  • chabeee

    tag

    hello agian,

    a printback-nél mit rontok el? egyszerüen nem akarja kiírni pedig sztem hiba nincs benne, lessétek meg please:
    #include <stdio.h>
    #include <stdlib.h>

    typedef struct Node {
    int data;
    int nev;
    struct Node *next;
    struct Node *prev;
    } node;



    void insert_after(node *nodee, int data, int nev){
    node *start = nodee;

    while(nodee->next != start) {
    nodee = nodee->next;
    }

    nodee->next = (node*)malloc(sizeof(node));
    nodee->prev = nodee;
    nodee = nodee->next;
    nodee->data = data;
    nodee->nev = nev;
    nodee->next = start;

    }



    void insert_before(node *nodee, int data, int nev){
    node *newNode = (node *) malloc(sizeof(node));
    newNode->data = data;
    newNode->nev = nev;
    newNode->next = nodee->next;
    newNode->prev = nodee;
    nodee->next = newNode;
    (nodee->next)->prev = newNode;
    }





    int find(node *nodee, int key){
    node *start = nodee;
    nodee = nodee->next;

    while(nodee != start) {
    if(nodee->data == key) {
    return 1; //Element Found!
    }
    nodee = nodee->next;
    }
    //Element Not Found!
    return 0;
    }

    void delete(node *nodee,int data){
    node *start = nodee;

    while(nodee->next != start && (nodee->next)->data != data) {
    nodee = nodee->next;
    }
    if(nodee->next == start) {
    printf("Element %d is not presented in the list \n", data);
    return;
    }

    node *temp;
    temp = nodee->next;
    nodee->next = temp->next;

    free(temp);
    return;
    }



    void print(node* start, node* nodee){
    if(nodee == start) {
    return;
    }
    printf("%d %d ", nodee->data, nodee->nev);
    print(start,nodee->next);
    }

    void printBack(node* start, node* nodee){
    if(nodee == start) {
    return;
    }

    print(start,nodee->prev);
    printf("%d %d ", nodee->data, nodee->nev);
    }




    int main() {
    int query;
    node *start = (node*)malloc(sizeof(node));

    start->next = start;
    start->prev = start;


    printf("1 - Insert_after\n");
    printf("2 - Insert_before\n");
    printf("3 - Delete\n");
    printf("4 - Print\n");
    printf("5 - Print Back\n");
    printf("6 - Find\n");

    while(1) {


    printf("query: ");
    scanf("%d", &query);


    //insert_to_the_end
    if(query == 1) {
    int data;
    int nev;
    scanf("%d", &data);
    scanf("%d", &nev);
    insert_after(start, data,nev);

    }
    //insert_to_the_begginning
    if(query == 2) {
    int data;
    int nev;
    scanf("%d", &data);
    scanf("%d", &nev);
    insert_before(start, data,nev);
    }
    //delete
    else if(query == 3) {
    int data;
    scanf("%d", &data);
    delete(start, data);
    }
    //print
    else if(query == 4) {
    printf("The list is: ");
    print(start,start->next);
    printf("\n");
    }
    //printback
    else if(query == 5) {
    printf("The list is: ");
    printBack(start,start->prev);
    printf("\n");
    }
    //find
    else if(query == 6) {
    int data;
    scanf("%d",&data);
    int status = find(start,data);
    if(status) {
    printf("Elements Found\n");
    } else {
    printf("Elements Not Found\n");
    }
    }

    }
    return 0;
    }

Új hozzászólás Aktív témák