ÇÁ·Î±×·¡¹Ö

 3206, 7/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   gxcolin
   C¾ð¾î ÇÁ·Î±×·¡¹Ö µµ¿ÍÁÖ¼¼¿ä ¤Ð¤Ð¤Ð

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=6460 [º¹»ç]


#include <stdio.h>
#include <stdlib.h>

typedef struct ListNode
{
        int row;
        int col;
        int value;
        struct ListNode *link;
} ListNode;
typedef struct ListHeader
{
        int length;
        ListNode *head;
        ListNode *tail;
} ListHeader;

void init (ListHeader *plist)
        {
                plist -> length = 0;
                plist -> head = NULL;
                plist -> tail = NULL;
        }
        void insert_node_last(ListHeader *plist, int row, int col, int value)
                
        {

                ListNode *temp = (ListNode *)malloc(sizeof(ListNode));
                if(temp==NULL) fprintf(stderr,"¸Þ¸ð¸® ÇÒ´ç ¿¡·¯\n");
                temp->row=row;
                temp->col=col;
                temp->value=value;
                temp->link = NULL;
                if(plist->tail=NULL)
                        {
                                plist->head=plist->tail=temp;
                        }
                        else
                        {
                                plist->tail->link = temp;
                                plist->tail=temp;
                        }
                                plist->length++;
                }
                
                void sparse_matrix_add2(ListHeader *plist1, ListHeader *plist2, ListHeader *plist3, int n2)
                {
                        ListNode *a = plist1->head;
                        ListNode *b = plist2->head;
                        int sum;
                        while(a->link!=NULL && b->link!=NULL)
                        {
                                int inda = (a->row)*n2 + a->col;
                            int indb = (b->row)*n2 + b->col;
                                if(inda<indb)
                                {
                                        insert_node_last(plist3,a->row,a->col,a->value);
                                        a=a->link;
                                }

                                else if(inda == indb)
                                {
                                sum = a->value + b->value;
                                     if(sum!=0)
                                                 {
                                                         insert_node_last(plist3,a->row,a->col,sum);
                                                 a=a->link, b=b->link;
                                             }
                                         else a=a->link,b=b->link;
                                }
                                
                                else if(inda>indb)
                                {
                                        insert_node_last(plist3,b->row,b->col,b->value);
                                        b=b->link;
                                }}
                        for(;a!=NULL;a=a->link)
                                insert_node_last(plist3,a->row,a->col,a->value);
                        for(;b!=NULL;b=b->link)
                                insert_node_last(plist3,b->row,b->col,b->value);
                }

                void sparse_matrix_print(ListHeader *plist)
                {
                        ListNode *p=plist->head;
                        for(;p;p=p->link)
                                printf(" %d %d %d\n",p->row,p->col,p->value);
                }
                void main()
                {
                        ListHeader list1,list2,list3;
                        int row=0,col=0,value=0;
                        int n1=0,n2=0,n3=0;
                        int m1=0,m2=0,m3=0;
                        int s=0;

            FILE *fp=NULL, *fs=NULL;
                        

                        init(&list1);
                        init(&list2);
                        init(&list3);

                                fp=fopen("input.txt","rt");
                                if(fp==NULL)
                                {
                                        printf("input.txt ÆÄÀÏ¿ÀǺҰ¡ \n");
                                        fclose(fp);
                                        return;
                                }
                                else
                                {
                                fscanf(fp,"%d %d %d",&n1,&n2,&n3);
                                while(1)
                                {
                                        if(fscanf(fp,"%d %d %d", &row,&col,&value) != (n1,n2,value))
                                        insert_node_last(&list1, row, col, value);
                                        
                                        else
                                                {
                                                        m1=row, m2=col;
                                                        break;
                                            }
                                }
                                        //fscanf(fp,"%d %d %d",&m1,&m2,&m3);
                                        //if(m1==n1 && m2==n2)
                                                //break;
                
                                while(1)
                                {
                                        if(fscanf(fp,"%d %d %d", &row, &col, &value)!=EOF)
                                                insert_node_last(&list2,row,col,value);
                                        else break;
                                }
                                
                                sparse_matrix_print(&list1);
                                sparse_matrix_print(&list2);
                                }}




¾È³çÇϼ¼¿ä
C¾ð¾î·Î row¶û columnÀ̶û value·Î ±¸¼ºµÈ Sparse Matrix¸¦ Linked List·Î ±¸ÇöÇؼ­ µ¡¼À¿¬»êÇÏ´Â ÇÁ·Î±×·¥À» Â¥°í Àִµ¥¿ä.
»õ·Î¿î node Ãß°¡ÇÏ´Â ÇÔ¼ö¶û µ¡¼À¿¬»êÇÏ´Â ÇÔ¼ö¸¦ Á¤ÀÇÇÏ°í ¾Æ·¡¿Í °°Àº ³»¿ëÀÇ input.txt¿¡¼­ µÎ sparse matrix¸¦ ¹Þ¾Æ¼­ µ¡¼À¿¬»ê Çؼ­ output.txt¿¡ Ãâ·ÂÇÏ°Ô ÇÏ·Á´Â ÇÁ·Î±×·¥Àä
±× Áß¿¡¼­ input.txt¿¡¼­ fscanf·Î °ªÀ» ¹Þ¾Æ ¿£ÅÍ ±âÁØ À­ºÎºÐÀº list1¿¡ ³ëµå¸¦ °è¼Ó Ãß°¡ÇÏ°í ¾Æ·§ºÎºÐÀº list2¿¡ Ãß°¡ÇÏ´Â ¼Ò½º¸¸ ¿Ã·ÁºÃ½À´Ï´Ù.
±×¸®°í ¼Ò½º ¸Ç ¹Ø ºÎºÐ sparse_matrix_print(&list1)À̶û 2´Â ¸Þ¸ðÀå¿¡¼­ Àß ºÒ·¯¿Í¼­ Àß ÀúÀåÇß´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼ö°í¿ä.

ÄÄÆÄÀÏÀº µÇ´Âµ¥ µð¹ö±×Çϴϱî ÀÚ²Ù ÀÌ·± ¿À·ù°¡ ¶ß³×¿ä

main.c.exeÀÇ 0x00c01504¿¡ 󸮵ÇÁö ¾ÊÀº ¿¹¿Ü°¡ ÀÖ½À´Ï´Ù. 0xC0000005: 0x0000000c À§Ä¡¸¦ ±â·ÏÇÏ´Â µ¿¾È ¾×¼¼½º À§¹ÝÀÌ ¹ß»ýÇß½À´Ï´Ù.

±×¸®°í ¾Æ·¡ÂÊ Áö¿ª(?)À» º¸´Ï pllistÀÇ headÀÇ row¶û colÀ̶û value, link¿¡
CXX0030 ¿À·ù :  ½ÄÀ» °è»êÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ·± °Íµµ º¸ÀÌ°í¿ä.

¾Æ ÁøÂ¥ µ¹°Ú³×¿ä ¹¹°¡ Ʋ·È´ÂÁö °¨ÀÌ ¾ÈÀâÈ÷´Ï±î ¹» ¾î¶»°Ô ¹æÇâÀ» Àâ¾Æ¾ß ÇÒ Áö ¸ð¸£°Ú½À´Ï´Ù. »ì·ÁÁÖ¼¼¿ä


input.txt
2 3 3
0 0 2
0 2 1
1 2 3

2 3 4
0 0 1
0 1 1
0 2 2
1 1 2

output.txt
Addition
2 3 5
0 0 3
0 1 1
0 2 3
1 1 2
1 2 3




  Hit : 7356     Date : 2014/05/17 11:05



    
MainThread Insert ÇÔ¼ö ³»¿¡¼­ if¹® º¸½Ã¸é plist->tail == NULL ¹Ù²Ù½Ã°í ³ª¸ÓÁö °è¼Ó ÄÚµùÇغ¸¼¼¿ä
From MainThread
2014/05/18  
gxcolin ¿Í °¨»çÇÕ´Ï´Ù!! Àú°Ô ±×·¸°Ô ¾Èº¸ÀÔµð´Ù ¤Ð¤Ð 2014/05/19  
3086   ¾î¼Àºí¸®¾î Áú¹®Á» µå¸±²¾¿ä[6]     woonkeekim
06/29 3516
3085   c¾ð¾î µ¥ÀÌÅÍÇü Áú¹®[4]     wjsgywns10
06/19 3421
3084   À¥¼­¹ö ·Î±× User Agent[1]     meis1541
06/16 3398
3083   C++ Áú¹®µå¸³´Ï´Ù![1]     È£¹Ú
06/16 3138
3082   ÆÄÀ̽ã Áú¹®ÀÌ¿ä!     jang0263
06/15 3988
3081   ½ÎÀÌŬ·´¿¡¼­ ³×À̹öÄ«Æä·Î ¿È°Ü¾ßÇϴµ¥ ±ÛÀ» ¿È°Ü¾ßÇÕ´Ï´Ù     jj4st13
06/14 3450
3080   ÄÚµåºí·° Çѱ۱úÁü Çö»ó µµ¿ÍÁÖ¼¼¿ä[1]     ifocean
06/12 7649
3079   C++ ÇÁ·Î±×·¡¹Ö Áú¹®µå¸³´Ï´Ù!![3]     È£¹Ú
06/12 3115
3078   2¹ø¤Š ÇÁ·Î±×·¡¹Ö Àε¥¿ä ¤Ð¤Ð[1]     ¸¸µçÀÌ
06/09 6768
3077   ÀÚ¹Ù Áú¹®ÀÔ´Ï´Ù.¤Ì¤Ì     cherish_247
06/04 3364
3076   (¹Ýº¹¹®)c¾ð¾î ¹®ÀÚÀÎÁö ¼ýÀÚÀÎÁö È®ÀÎ ÇÏ´Â °Å ¾î¶»°Ô ¸¸µå³ª¿ä ?[17]     stingygirl
06/02 23901
3075   win 32 api ·Î ¹ÂÁ÷Ç÷¹ÀÌ¾î ¸¸µé±â     khfs200
05/25 6033
3074   c# ¹è¿­¼±¾ð ÀÌ·¸°Ô ÇÏ´Â °Å ¸Â³ª¿ä??     gksmf9315
05/20 3906
3073   µð¹ö±ë ÀßÇϽô ºÐµé ºÎŹµå¸³´Ï´Ù.     MainThread
05/19 3137
  C¾ð¾î ÇÁ·Î±×·¡¹Ö µµ¿ÍÁÖ¼¼¿ä ¤Ð¤Ð¤Ð[2]     gxcolin
05/17 7355
3071   c++ ¿¡·¯[1]     zx4564
05/06 3788
3070   ÆÄÀ̽ã urllib¸ðµâ Áú¹®Àִµ¥¿ä      yuhioh8
04/21 3755
3069   getchÇÔ¼ö Áú¹®ÀÔ´Ï´Ù.[4]     mystell
04/11 4785
3068   c¾ð¾î óÀ½À¸·Î Çغ¸´Âµ¥.. ¿À·ù°¡ 1°³ ¶ß³×¿ä.. ¹¹°¡ Ʋ¸°°ÅÁÒ?!?? ¤Ð[2]     dpyeong
04/05 6271
3067   C¾ð¾î¸¦ ¹è¿öº¸·Á Çϴµ¥ visual studio ±î´Â°Ô Àß ¾ÈµÇ³×¿ä[4]     ¿ìµ¿
03/31 3761
[1][2][3][4][5][6] 7 [8][9][10]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org