• º» °Ô½ÃÆÇÀº ¼ö¾÷½Ã°£¿¡ Çлýµé ½Ç½ÀÀ» À§ÇÑ °Ô½ÃÆÇÀÔ´Ï´Ù.
  • º» °Ô½ÃÆÇ¿¡ ¿Ã¶ó¿Í ÀÖ´Â ÇÁ·Î±×·¥Àº ´ëºÎºÐ ¿Ã¹Ù¸£Áö ¾ÊÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
        ÀüÈ£¼º
        11ÁÖÂ÷ ½Ç½À



    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    typedef struct student_info {
        char name[10];
        int height;
        float weight;
    } element;

    typedef struct ListNode {     // ³ëµå ŸÀÔÀ» ±¸Á¶Ã¼·Î Á¤ÀÇÇÑ´Ù.
        element data;
        struct ListNode* link;
    } ListNode;


    ListNode* insert_first(ListNode* head, element value)
    {
        ListNode* p = (ListNode*)malloc(sizeof(ListNode));//(1)
        p->data = value;    // (2)
        p->link = head; //(3)
        head = p; //(4)

        return head;
    }

    // ³ëµå pre µÚ¿¡ »õ·Î¿î ³ëµå »ðÀÔ
    ListNode* insert(ListNode* head, ListNode* pre, element value)
    {
        ListNode* p = (ListNode*)malloc(sizeof(ListNode));    //(1)
        p->data = value;        //(2)
        p->link = pre->link;    //(3)    
        pre->link = p;        //(4)    
        return head;        //(5)    
    }

    ListNode* delete_first(ListNode* head)
    {
        ListNode* removed;
        if (head == NULL) return NULL;
        removed = head;    // (1)
        head = removed->link;    // (2)
        free(removed);        // (3)
        return head;        // (4)
    }

    // pre°¡ °¡¸®Å°´Â ³ëµåÀÇ ´ÙÀ½ ³ëµå¸¦ »èÁ¦ÇÑ´Ù. 
    ListNode* delete(ListNode* head, ListNode* pre)
    {
        ListNode* removed;
        removed = pre->link;
        pre->link = removed->link;        // (2)
        free(removed);            // (3)
        return head;            // (4)
    }

    void print_list(ListNode* head)
    {
        for (ListNode* p = head; p != NULL; p = p->link)
            printf("(%s %3d %4.1f)->", p->data.name, p->data.height, p->data.weight);
        printf("\n");
    }

    element* new_element(char* name, int height, float weight)
    {
        element* p = (element*)malloc(sizeof(element));    //(1)
        strcpy(p->name, name);
        p->height = height;
        p->weight = weight;

        return p;
    }

    ListNode* find_node(ListNode* head, char* name)
    {
        for (ListNode* p = head; p != NULL; p = p->link)
            if (!strcmp(p->data.name, name))
                return p;
        return NULL;
    }

    ListNode* insert_last(ListNode* head, element value)
    {
        ListNode* p = (ListNode*)malloc(sizeof(ListNode));
        ListNode* t;
        p->data = value;

        if (head == NULL) {
            p->link = head;
            head = p;
        }
        else {
            for (t = head; t->link != NULL; t = t->link);
            t->link = p;
            p->link = NULL;
        }

        return head;
    }

    ListNode* insert_multiple_after_node(ListNode* head, char* name, int k)
    {
        ListNode* find = find_node(head, name);
        element* new = find;
        if (find != NULL)
        {
            for (int i = 0; i < k; i++)
            {
                head = insert(head, find, *new);
            }
        }
        
        return head;
    }

    // Å×½ºÆ® ÇÁ·Î±×·¥
    int main(void)
    {
        ListNode* head = NULL, * pre;
        element* new;

        new = new_element("È«±æµ¿", 167, 72.5);
        head = insert_first(head, *new);
        new = new_element("À¯°ü¼ø", 163, 58.4);
        head = insert_first(head, *new);
        new = new_element("±èÀ¯½Å", 159, 70.8);
        head = insert_first(head, *new);
        print_list(head);

        head = delete_first(head);
        print_list(head);

        pre = find_node(head, "À¯°ü¼ø");
        if (pre != NULL) {
            new = new_element("À̼ø½Å", 172, 83.4);
            head = insert(head, pre, *new);
        }
        print_list(head);

        pre = find_node(head, "À̼ø½Å");
        if (pre != NULL) {
            head = delete(head, pre);
            print_list(head);
        }
        new = new_element("È«±æµ¿", 167, 72.5);
        head = insert_last(head, *new);
        print_list(head);

        new = new_element("±èÀ¯½Å", 159, 70.8);
        head = insert_first(head, *new);
        print_list(head);

        head = insert_multiple_after_node(head, "À¯°ü¼ø", 3);
        print_list(head);

        head = insert_multiple_after_node(head, "À̼ø½Å", 3);
        print_list(head);

        return 0;
    }
     

      µî·ÏÀÏ : 2024-11-12 [20:31] Á¶È¸ : 318 ´Ù¿î : 0   
     
    ¡â ÀÌÀü±Û°ÔÀӽǽÀ
    ¡ä ´ÙÀ½±ÛÀüÈ­¹øÈ£ ¼öÁ¤ÇÏ´Â ÇÁ·Î±×·¥
    Çлý½Ç½À °Ô½ÃÆÇ
    ¹øÈ£ ¨Ï Á¦ ¸ñ À̸§ Á¶È¸ µî·ÏÀÏ
    98 11ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î ÀüÈ£¼º 318 11-12
    97 Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö ÇÁ·Î±×·¡¹Ö¾ð¾î ÀÓÀç¸ð 367 10-29
    96 Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö BFS ±¸Çö ÀڷᱸÁ¶ À̱âÁ¤ 368 10-29
    95 Á¶°Ç¹® µµÀü°úÁ¦1 ÇÁ·Î±×·¡¹Ö¾ð¾î ÃÖÇö¿ì 461 04-12
    94 4¿ù12ÀÏ ¼¼¼ö ºñ±³ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î À±¿µ¹Î 431 04-12
    93 µµÀü¹®Á¦ ÇÁ·Î±×·¡¹Ö¾ð¾î ÀÌÀ±È¯ 459 04-12
    92 asdff ºñ°ø°³ ÇÁ·Î±×·¡¹Ö¾ð¾î À±Çü½Ä 532 11-28
    91 ¾ß±¸°ÔÀÓ ÇÁ·Î±×·¡¹Ö¾ð¾î À±Çü½Ä 461 11-28
    90 ddd ÇÁ·Î±×·¡¹Ö¾ð¾î À±Çü½Ä 511 10-31
    89 ½Ç½À2 ÇÁ·Î±×·¡¹Ö¾ð¾î ¼­¼ºÀº 943 03-16
    88 ¦¦❶ ½Ç½À2 ÇÁ·Î±×·¡¹Ö¾ð¾î Á¤¼ºÈÆ 894 03-16
    87 ¾ß±¸ ÇÁ·Î±×·¡¹Ö¾ð¾î ¹éÇö¹Î 1051 10-31
    86 °Å²Ù·Î ÇÁ·Î±×·¡¹Ö¾ð¾î ±è°æÈ¸ 1155 09-26
    85 ¤±¤¤¤· ÇÁ·Î±×·¡¹Ö¾ð¾î Á¶¹®±Ù 1182 06-13
    84 ·Î¶Ç ÇÁ·Î±×·¡¹Ö¾ð¾î ±è»ó¿ì 1184 05-30

    [1][2][3][4][5][6][7][8]