• º» °Ô½ÃÆÇÀº ¼ö¾÷½Ã°£¿¡ Çлýµé ½Ç½ÀÀ» À§ÇÑ °Ô½ÃÆÇÀÔ´Ï´Ù.
  • º» °Ô½ÃÆÇ¿¡ ¿Ã¶ó¿Í ÀÖ´Â ÇÁ·Î±×·¥Àº ´ëºÎºÐ ¿Ã¹Ù¸£Áö ¾ÊÀº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
        ÀüÈ£¼º
        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] Á¶È¸ : 174 ´Ù¿î : 0   
     
    ¡â ÀÌÀü±Û¾ß±¸½Ç½ÀN
    ¡ä ´ÙÀ½±Û11ÁÖÂ÷ ½Ç½À
    Çлý½Ç½À °Ô½ÃÆÇ
    ¹øÈ£ ¨Ï Á¦ ¸ñ À̸§ Á¶È¸ µî·ÏÀÏ
    108 ¿äûÇϽŠÀÚ·áÀÔ´Ï´Ù. ÇÁ·Î±×·¡¹Ö¾ð¾î Çѹμ­ 14 03-28
    107 15ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î À̱âÁ¤ 69 12-10
    106 ¦¦❶ 15ÁÖÂ÷ ½Ç½À (¿À·ù ¼öÁ¤) ÇÁ·Î±×·¡¹Ö¾ð¾î Á¤¼ºÈÆ 77 12-10
    105 °ÔÀӽǽÀ ÇÁ·Î±×·¡¹Ö¾ð¾î . 98 12-10
    104 ¦¦❶ °ÔÀӽǽÀ (¿À·ù ¼öÁ¤) ÇÁ·Î±×·¡¹Ö¾ð¾î Á¤¼ºÈÆ 75 12-10
    103 ÀüÈ­¹øÈ£ ¼öÁ¤ÇÏ´Â ÇÁ·Î±×·¥ ÇÁ·Î±×·¡¹Ö¾ð¾î ÀÓÀç¸ð 95 12-03
    102 14ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î Â÷»ó¹Î 90 12-03
    101 °áÁ¤ Æ®¸® ÀڷᱸÁ¶ À̱âÁ¤ 136 11-26
    100 ¾ß±¸½Ç½ÀN ÇÁ·Î±×·¡¹Ö¾ð¾î ÃÖÇö¿ì 183 11-19
    99 ¾ß±¸½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î ¹éÀμ­ 161 11-19
    98 11ÁÖÂ÷ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î ÀüÈ£¼º 174 11-12
    97 Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö ÇÁ·Î±×·¡¹Ö¾ð¾î ÀÓÀç¸ð 245 10-29
    96 Å¥¸¦ ÀÌ¿ëÇÑ ³Êºñ ¿ì¼± Ž»ö BFS ±¸Çö ÀڷᱸÁ¶ À̱âÁ¤ 238 10-29
    95 Á¶°Ç¹® µµÀü°úÁ¦1 ÇÁ·Î±×·¡¹Ö¾ð¾î ÃÖÇö¿ì 307 04-12
    94 4¿ù12ÀÏ ¼¼¼ö ºñ±³ ½Ç½À ÇÁ·Î±×·¡¹Ö¾ð¾î À±¿µ¹Î 294 04-12

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