From 2ea9e1b145710a931899f431d0f079650f4b2f54 Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Sun, 29 Mar 2026 17:24:04 +0900 Subject: [PATCH 1/9] =?UTF-8?q?4=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 8196 -> 8196 bytes .vscode/tasks.json | 29 ++++++++++++++++++ .../1Array" | Bin 0 -> 33592 bytes .../1Array.c" | 19 ++++++++++++ .../2DeCharArray" | Bin 0 -> 33600 bytes .../2DeCharArray.c" | 26 ++++++++++++++++ .../3Array" | Bin 0 -> 33592 bytes .../3Array.c" | 25 +++++++++++++++ .../pointer1" | Bin 0 -> 33720 bytes .../pointer1.c" | 10 ++++++ .../pointer1.dSYM/Contents/Info.plist" | 20 ++++++++++++ .../Contents/Resources/DWARF/pointer1" | Bin 0 -> 9236 bytes .../Relocations/aarch64/pointer1.yml" | 5 +++ .../pointerArray" | Bin 0 -> 33824 bytes .../pointerArray.c" | 9 ++++++ .../pointerArray.dSYM/Contents/Info.plist" | 20 ++++++++++++ .../Contents/Resources/DWARF/pointerArray" | Bin 0 -> 9288 bytes .../Relocations/aarch64/pointerArray.yml" | 5 +++ .../ponter_assginment1" | Bin 0 -> 33568 bytes .../ponter_assginment1.c" | 17 ++++++++++ .../InsertLinkedList.c" | 6 ++++ .../practice1.c" | 8 +++++ 22 files changed, 199 insertions(+) create mode 100644 .vscode/tasks.json create mode 100755 "2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array.c" create mode 100755 "2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray.c" create mode 100755 "2\354\243\274\354\260\250 \354\213\244\354\212\265/3Array" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/3Array.c" create mode 100755 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.c" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Info.plist" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Resources/DWARF/pointer1" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Resources/Relocations/aarch64/pointer1.yml" create mode 100755 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.c" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Info.plist" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/DWARF/pointerArray" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/Relocations/aarch64/pointerArray.yml" create mode 100755 "2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1" create mode 100644 "2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" diff --git a/.DS_Store b/.DS_Store index 741f94320ac7202a687a76c7eac1e95a0116e303..40c0ac49c526b58d4a4f9ce59520b32b18d6061a 100644 GIT binary patch delta 138 zcmZp1XmOYj$(_hh#1PMr!;r~Pys>Z^`@{y`&FmZ;9Nc0IK0vWNhE#^c$#vpNldS}f np^I(S7EEHs5ZocMmkCXV!Z diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..ffb5da9 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,29 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: clang 활성 파일 빌드", + "command": "/usr/bin/clang", + "args": [ + "-fcolor-diagnostics", + "-fansi-escape-codes", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "디버거에서 생성된 작업입니다." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array" new file mode 100755 index 0000000000000000000000000000000000000000..2ca7f333a4582f8fdb64f587a0415841eb741d5c GIT binary patch literal 33592 zcmeI5T})h65XaA5z`}xj6ogtodLLTTHVRZ*MPlP(A^jpiC=VMoIScFp8(=Z}p+!i# zgb!=+fmNz#Y{i5|Y3qxj2_!Yr7t@%i#WXfCsUbczP`0tg2cZeBGw0r2cDF?n8{htu z%spr3%$Ymqx08L_JwM#J^;ebWhx zFgB-&ls1IA+s6@(UpWo~Dw8rej^Y)tgy3BR9<0U>f z`=tzc-f(-I((P&CJ<0Wj&3tw<3ERmz%q2DO=P*VpWo1P}h1^$LbHw;GY-SVCs3d7j zAtx)d$R(AswJYvpST~PFZ%K!{sl?gc;Ut^o5mK(>V&AWOMlb9wy7*kdxo2N|s`qK~>7*K|5Syuh&1$ZW zt9_rklf3GDYF&u!bUx1GNGg)wTSm%jMn6=mPKnh*^&IK;`CXmGFBMZ=?j{N(d4iPl zUk(b9PU8;KW?n3hk@EUDoqNnElHKb{q+gp`?Ma(l-KT}9){*oy+e*4-Tlu_y%W@=N z%+SUWar>cAxe%lCuZYkd8kMi3P|YJbVuoH*u$U8^S)lcFEn}GWKi_5%yW{;<_hQ*% ziU=*FSkG?P#EQyswJ@}m@-1ZAX42C{-a@94Yaz$9Dfi7tq)5fi7lx<@RV?R;<=9jd z$|wJ1zg&*5pXyk02+_bb5Ll`?Sijm+HA&|U&8EnoO6gp=7Tb!jY%%86xOuiQUphY> zK0OltU@ClSKo6fDTpB-f>*QE?U^@KKXt^$|hHGi$V?8c1s9VLhW@B;q_|ou1F*)uT zIi}y7o(`Xy()a4yoD`(`=utW>OZ>?F!Tn>Sk(IyWSZwOK_TV1OqAa;)caoXZb!)Mh zfdB}A00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x+z)}=pz%}Q+#vrJlz!nGG=E+l zR3;uE00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4ea|2qMl-cU#C zAmt04jsF6m2}%3~&wQ77RMgx?H>lg99%G+Ie;}aICE{8&sh!rOls=q|ZTq`|XkXO3la`ElQdk(#S>Fjh**M&p%`n#DY=ey7Je{t;mm-eo2 z7F%Xhug%T1TWalTk>07^HwSq8^2*T_F6zN>8ecGsr^uV&Xdy;ml_ zuDd#Q?)P_o?0Vso`_2Dv`wMUM^*gfv4CMDZuK#BL@KVnXN4a(5&Y{+!x2`t~+%Wp{ EZz|~6?EnA( literal 0 HcmV?d00001 diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array.c" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array.c" new file mode 100644 index 0000000..688b95a --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/1Array.c" @@ -0,0 +1,19 @@ +#include + +int main(void) { + int i, length; + char str[50]; + + printf("문자열을 입력하세요: "); + gets(str); + printf("\n입력된 문자열은 \n"); + for(i = 0; str[i]; i++){ + printf("%c",str[i]); + length ++; + } + printf("\n입니다. \n"); + + printf("입력된 문자열의 길이 = %d \n", length); + + return 0; +} \ No newline at end of file diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray" new file mode 100755 index 0000000000000000000000000000000000000000..20ca5786ed42970e9ed4c85dcc812e39e60e1767 GIT binary patch literal 33600 zcmeI5e{54#6vxkNH`aBq4J4op!;3h^55o}o1BuZ$*#Za|6Z%JEOm55CZ4GRLwnJbL zO9m+5A2ebDLBdFg3TRApf7qyT24e_`3P_ZgK=_NS{D>j`0mWcF=l$5)HxMK7zwb%T zyZ4-X?|J8Z-hKV=_5O7C=3irpG-C0vj%U?Nh<1|BJ)$RAm$E9=(y*lIwWd`o#ak@q z;$qh*OX9rE6O{@y1p~#y=6a*pN48zcZc$Fj6s3~UO-b9}#vL!j6D6J@#juENcP&Q= zrL2y1RVtC}S(6xcx#RVZvEn^#&k(yXp3jcQ3{6q0HIay5eYRp*^YW&~WzHT+x$_= zq>?>4tL%&VoF1lO7QS@yl~0e1n|9*e`RvnKHCCc2 zoWK;bZK9*Ggu}5=@gNV+gY|PyhNU4mGOSAyWdJu+z*tz*L&_>Z^iL@r#xxSb)T=)$oVuQ z_fg-pJNbIbPt4RP$2ZwW)ir6p_5Ptb zsm$)O)cI@$<;u5}9~wHv^Qw4`R=#(mIc{X`yFOWyzEVcH^*rZVg^?SoGICjtHEWyy zkdN2WtCVizu`6Xf#yPoTFsA#jJ4)#wk2$&fIQJp0?MyyD*_VTH7FfCcyET4ZGm3r5 z)bvwMjng?NsgZNJ%r%;^B~S5j-ak7&d9F5#LG~T*Q+EpY0q1-@L{?qALHF}^UUjc` z`ElMi=|QjhWgb8CYLAg4&ory=FX&fVeZPM5y@NOU4(qj%8;1|*Hx3V6|6qr{NGI0- z&${;cS2AGDuZ`$_()HR_Za9CMYVYF0R^A36-6 zBXiLM0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X0D*@Ss7}fEkNjnCO1^iL*8aRY zWtzBv00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=9 z00@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x{O<&GzC#OZ zh*b_Pw*Cu%J1m8V7|U7Wj+lLe4?{K_kF`$YKM>IP5OHk2g9pGGTgdWwRWsk zZQxO;i*Ag6nfLpwQ6WS>ypNgmF`W2O=1aiJ|zPPDyW_n1e|Tb_Ts zdJKD5o8K5++!2m9#N*-3^hHJR&Wt@@?hf28yES>~>_1O;o_v3NvN;;)-EwjLi?Iuz zy!r8G!S3&~ZG$Dho;$bJvoctk-#V~$%g*1v-n(@7Gao+c_^y2$o7Er3erW7C^X$s{iLhg`$Cnsdmh^wy7YVS;J3ZALW}$pX76g> O_12}pj;r=ArN04nLn?;= literal 0 HcmV?d00001 diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray.c" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray.c" new file mode 100644 index 0000000..509abfb --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/2DeCharArray.c" @@ -0,0 +1,26 @@ +#include + +int main(void) { + int i,j,k; + char student[2][3][20]; + + for (i = 0; i < 2; i++){ + printf("\n 학생 %d의 이름 : ", i + 1); + gets(student[i][0]); + printf("\n 학생 %d의 학과 : ", i + 1); + gets(student[i][1]); + printf("\n 학생 %d의 학과 : ", i + 1); + gets(student[i][2]); + } + + for(i = 0; i < 2; i ++){ + printf("학생%d \n", i + 1); + for(j = 0; j < 3; j++){ + // printf(" %c \n", student[i][j][20]); + for (k = 0; student[i][j][k] != '\0'; k++) { + printf(" %c \n", student[i][j][k]); + } + } + } + return 0; +} \ No newline at end of file diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/3Array" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/3Array" new file mode 100755 index 0000000000000000000000000000000000000000..9d62879a29dae52ec9cf7ba03afc070fb477ab67 GIT binary patch literal 33592 zcmeI5e{54#6vyxDHfWKt%@D+ip&Dn#MkqKEFoC2~7MLvC0y9p2VFi9l*_dUsZ z_nvd_Jw501?(2W=-LJ0wdVR7|mV&sTB~Wj^QoEEFJ*Do4E`w^_SiQ7nRn3Y9@n(xz zob9^Fk~q6DQR}9f=BDgnv)-TWQ;uB#wmf*tP>XNK6B@!U>4Ff^idYb+iON7`@L+4c4~@#Z??VrNQb zZ1HQ|6?rin3F>g9t<%`q@%o*3%}x-pb7MF|rjh$_7^?M>>ZWS_WJCQ*`)>H1O@P)& zPMZg(sIV=DYTe$MaT~^s=fzwjetW%RDJfgxrDbfN)z#K7uUS%?-Xn>eykLtgbQViK zX8#zkQuCEcNPcpcrOqnHJ`7u!3!CZCe%O*j<8~<8d!!G|6qzfEEi|so#rlc27@Y#2 z7b^S0*AhLp`ofouV+Hyyys=lk)a<|(rtP64f_&^ ziMA502QAi@W4&3|Uz%KnbtYH&?E+OYgj_DBQui63{sfr&d!l@-a2vuBPtrX{l*8YN`a23NR@zbn5%QG&%DY_5F~pC8NH< zv@fH+FW@_|Lto9j$6$J;McFxH^BuxgT`{`lsT0@}$-X>2I2ZS$*ySHlu9>khbqlw*Ea;tNo|PHSZp>`u8IWhhk5*Lv$3^_+I(CugY%-!0 zn@Gl=^JI<9Wsd|%fCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c?jC{S1m0nV6er|8 zNok$es}siLg#<`|1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNZ_s$ z@ZuL5p)F83?AZPm06LJ&!;j@G@wAw}ABQOW(;j=Bg%1c=I7Hm4gRa4t);bmsw652! z9qV;lAiN>l)7}+`29H3! zSv#qX*>EW@%DXvDZPNTdD6USUY9v~ z-uC?G)s;Rb+p4OT!?x9>1(ij;^JjnPeflTg{`ZHcUs$;Mv%jt{URvdOt^P>i;0Nz+ zd*{98&d-P2`trXW7+CLWXf8-?J+<|vUEh7QZ`q#NZ{F$nD+gYv*MA&8x1{6jyf=2P znbH`H_8 + +int main(void) { + int i,j,k; + int array[2][3][4]; + + for(i = 0; i < 2; i++){ + for(j = 0; j < 3; j++){ + for(k =0; k < 4; k++){ + printf("array[%d][%d][%d] =", i, j, k); + scanf("%d",&array[i][j][k]); + } + } + } + + for(i = 0; i < 2; i++){ + for(j = 0; j < 3; j++){ + for(k =0; k < 4; k++){ + printf("array[%d][%d][%d] = %d \n", i, j, k, array[i][j][k]); + } + } + } + + return 0; +} \ No newline at end of file diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1" new file mode 100755 index 0000000000000000000000000000000000000000..de1ad7967e164e10dff148816fe10c5f35df9a53 GIT binary patch literal 33720 zcmeI5e`s4(6vuCpcBETpI~CEX>jO8LqwP!EwYK6k-CDL{X-iunsCbj+N1L@x%FBye zx5BcHi8_a?I2ikD(t({Qh^&z6hH(Y|5K$}J{DoUZ6gs=XP;edAdd|yB`w}-)wm-iI zPVYVE-22VBpZogv{o?xNzY2x02{JqRDsm-Hi2XvLnGpApZzGqot$u6cGmY)7oXs|4 zb9U+<5$n7}3#IIA^mJyIjs5QIoG{~jO0!c-hDoUhcj{(9L$02e7P6k#T*5J*YtiyV zVsTCrDPwxPE4G-*)k~Rr#Kwr6YYCZu29c(XgD+K}mLI zTTCuxchqtXH`Q~}TEpDw{bnSV(ZslSGqLoYH8-_9)!5LK`9=~seNoJoY4U zhy?d166tTC%8b1fyC}_U?j=7$G2fYYFKN-Zg1n8Kjqiq?*K*#fPhpmMX#b6P-$APs za{di99@EsmaF-ew><%#GvP zKF`}gHRF6VvaP4{v5uGS-D>>1wd7n&_t#ASMz*D1sGp9(m>%pe-&{_8g}c(bAEtrz z4<&@)yL-fpnHSrG5>rjK zMEi+-Gq1fgbwh=vB~F?^Sig4 zAl;FaL!Nh0t=R6K6ZVqx>jI_9x`48ro8i_T;0c*^WERZIO(T2CNWG4DcBDK?ah zN)BP`YRo|Z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00cnbwh~C(RyBx$00@8p z2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x zfB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@8p2!H?x{BHsZ?Pw$CC)fGiZ0ob$ z)<>`TE%A&Qb2q)>?#^V)z5Kwo9MHlMJ!DjDQryWC&O5|3y(w;&{XH_cGw6@&LD>`Z z1%jF===X&qVx=$^@N(`UU}ROm76~f^Ag@#PJj5VZ=T;nzSa_R zjy1jHY#g`b)UChI?HAejkF^u1hXIF&0!EvQ=+zcl5=~z&UsXad3 z7mW9+4N-r*KN!(tY6E3thpxr_dRz<2`dBR79pRE%IXil4_PsG>_Q3JkSH@K_5GCM2 zt)kp7)E9i38jAK2)|e_os;hQjN1dx8Rx|i$pt`p{bVMT%KLh1 zs@LA?$zK>cIkap4cc%|*d%5(jTdiL__v?#S4~HCYmM*LL-Cq*Ax^hMG?3K~4o*kb4 z`E~or%eSikZ~MQUsMcOBYAz^y>}=(e&WVm+#`QC)qvtNZ_QdHAdw;y}DFOQ%wS$m- literal 0 HcmV?d00001 diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.c" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.c" new file mode 100644 index 0000000..5ef143c --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.c" @@ -0,0 +1,10 @@ +#include + +int main(void) { + int num = 10; + int *pnum = # + + printf("%d, %d \n", num, *pnum); + + return 0; +} \ No newline at end of file diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Info.plist" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Info.plist" new file mode 100644 index 0000000..7cf3c20 --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Info.plist" @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.pointer1 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Resources/DWARF/pointer1" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointer1.dSYM/Contents/Resources/DWARF/pointer1" new file mode 100644 index 0000000000000000000000000000000000000000..e528728d381b508bcb2104a9fb1ae836f36651be GIT binary patch literal 9236 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 + +int main(void) { + + char string[3][10] = {"Dreams", "come", "true!"}; + char *ptr[3] = {"Dreams", "come", "true!"}; + + return 0; +} \ No newline at end of file diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Info.plist" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Info.plist" new file mode 100644 index 0000000..5636d53 --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Info.plist" @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.pointerArray + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/DWARF/pointerArray" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/DWARF/pointerArray" new file mode 100644 index 0000000000000000000000000000000000000000..a9fc0dfebfa8722825bd63e9609f07f4e3740cbe GIT binary patch literal 9288 zcmeHN&2Jk;6rb7kZtOUv`KU@;v`iZXxhtYZEqaYcsK0Y zX{$tPgnB@5pap>t;si*o)PgDmr-DHI13eXSLgL0D&;y7AMTqxyXB}sqlt?)t%}8(G zn>TNM`}VhQto6>``RmtzItZZzT02M>}XEW1N&qbMa z{1)bT{y1Yr%XHQg4B}nkc>8>S|ImQv)a;5`=5ay1&pBTA7C6nhVhCe(^L)iDv5Glo zx&4jz<2#Nw+k_XyXc}_s;};hvotjCp<5QD)@9vKA;sm`}lfj9C*idSaSJ_%;4f~tp zVXWV9zTdF)o9nRkK5WG69P{FFjrgq@&-eLyeI4YoljE6m*1JlA)#RSnPmJs5`9vIR z&I@t+;6!kJr&H4}@hDJN0yuGR=w!&#ZJ;o}h}VVrC8JO;vxSOjpld65KtulM#g@$^E$HkMlR z8@cM;kJos9BL}##h4T4>#p*@`ulE|qOYma2wtYNi&CNMMyu0ss`3>`Y?mo6fV%+WL zhxGzKd3F#l@~(&XF^`WtzCAosuR^u7@^_QteZ*mI0^WmuM;?4OF)A1k3!3ooB`cqgbyQY~IjIhD}&iub2=dnqWXMAQ%t~ z2nGZLf&syRU_dY+7!V8y1_T5D2L{eVk_znl=Ri|R??1E)6}|}o0b@U!M5gk>dK5YK`bzBHrI_8@ z+1nrM>hD&aUH};&a_nd{8U+M2qtT;ah7uG5#`@&gv(e|GPwvh39D_|s7<7Ia(S#EMK$h#ai7qSjurKWfOI}sSIPpeG|n$ZCHd&Q%IX6fiNg0 zcf(u*y$bRr$hRO^+bT#51dIC#kf%U)p5l%Xf}{uT0r>#Z_b&@fx8b%vN*4&$doK6N zL=q|i%*OWuxX5tNKe_rw^wmoruH4Vv>nO(GTfxgl8jucm$wLf&|9}gv8-xzXJt3%3 WDdA~Cap@502p%b}5JKJM0LH(e+?}HU literal 0 HcmV?d00001 diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/Relocations/aarch64/pointerArray.yml" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/Relocations/aarch64/pointerArray.yml" new file mode 100644 index 0000000..26b651e --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/pointerArray.dSYM/Contents/Resources/Relocations/aarch64/pointerArray.yml" @@ -0,0 +1,5 @@ +--- +triple: 'arm64-apple-darwin' +binary-path: "/Users/hataeuk/Documents/Data_Structure_Assignment/2주차 실습/pointerArray" +relocations: [] +... diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1" new file mode 100755 index 0000000000000000000000000000000000000000..1b25c7076bd575bb5d65794e151a5ac9af53cef2 GIT binary patch literal 33568 zcmeI5T})h65Xa{(i!3Z{7r#nt8#Xa*uqt0I#*h#%0ZIkC~F(mj91QcwV2j=+agXgCr{=U3Px5V=I2+=>t!FjtRiAdK5NP9xozKf zpslrKpH(Hv?(3sr+AG->@!G*;Opj|X(H>qQ^~$=SR)5|L7tU4A6R}Tkzs{6)=``8wFj8*bj{O04ozi4=F z+ec%IPkxwwyuFTnURHyZXe%eMRrhrc#&^zL?Dgm|>ru(|NgVmR$rgF;$BnI&Bns= zgmZeiz({beldeKDozx6O0DM|kF4>I>62`M9^PdN-ALcSNX!UJL~Xg7WW0pN(zO zVaaY~&*e;*+=|NoK@n3wS08e&N;!&0N7DYhle9V)JrDo^5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH z0T2KI5C8!X009sHfwc&D;?}3Pp16GH$zSBgt?$x3^qc<9(?d7x_ILZc&$S}K4+0XX0zWfkD0nHS1PmK&J|Cqlw7WJz^zpu|9rs5G_AV?edPHLVYBGWe+ za+A1~$D`V|?yQ!2-RzA@+CcQ6jGRMBMApSHat^do{+&wi%^R9-}wKxeg|C~|NLlI!zag_W}^1&w?$`r_I-V=@z0I^nfGI_Y%u9Rd%n4V literal 0 HcmV?d00001 diff --git "a/2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1.c" "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1.c" new file mode 100644 index 0000000..2e00f80 --- /dev/null +++ "b/2\354\243\274\354\260\250 \354\213\244\354\212\265/ponter_assginment1.c" @@ -0,0 +1,17 @@ +#include + +int main(void) { + int i; + char *ptr[4] = { {"Korea"}, {"Seoul"}, {"Mapo"}, {"152번지 2/3"} }; + for (i = 0; i <4; i++){ + printf("\n %s", ptr[i]); + } + printf("\n"); + ptr[2] = "Jongno"; + for (i = 0; i <4; i++){ + printf("\n %s", ptr[i]); + } + + return 0; + +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" new file mode 100644 index 0000000..3b363f7 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" @@ -0,0 +1,6 @@ +#include + +void insertFirstNode(linkedList_h* L, char* x){ + listNode* newNode; + newNode = +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" new file mode 100644 index 0000000..19151ee --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" @@ -0,0 +1,8 @@ +#include + +insertFirstNode(L, x) { + +} +int main(void) { + +} \ No newline at end of file From 1044a415ce5793daecea229ea5b2c3eb6251b598 Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Mon, 30 Mar 2026 17:50:45 +0900 Subject: [PATCH 2/9] =?UTF-8?q?4=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B51,2?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 실습1,2 구현 --- .vscode/launch.json | 7 + .../InsertLinkedList.c" | 6 - .../practice1.c" | 8 -- .../InsertLinkedList.c" | 80 +++++++++++ .../InsertLinkedList.h" | 19 +++ .../\354\213\244\354\212\2651/ex4_1" | Bin 0 -> 33944 bytes .../\354\213\244\354\212\2651/ex4_1.c" | 31 ++++ .../\354\213\244\354\212\2652/ex4_2" | Bin 0 -> 34120 bytes .../\354\213\244\354\212\2652/ex4_2.c" | 38 +++++ .../\354\213\244\354\212\2652/linkedList.c" | 133 ++++++++++++++++++ .../\354\213\244\354\212\2652/linkedList.h" | 22 +++ 11 files changed, 330 insertions(+), 14 deletions(-) create mode 100644 .vscode/launch.json delete mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" delete mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.h" create mode 100755 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1.c" create mode 100755 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.h" diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d654349 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,7 @@ +{ + // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요. + // 기존 특성에 대한 설명을 보려면 가리킵니다. + // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요. + "version": "0.2.0", + "configurations": [] +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" deleted file mode 100644 index 3b363f7..0000000 --- "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/InsertLinkedList.c" +++ /dev/null @@ -1,6 +0,0 @@ -#include - -void insertFirstNode(linkedList_h* L, char* x){ - listNode* newNode; - newNode = -} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" deleted file mode 100644 index 19151ee..0000000 --- "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/practice1.c" +++ /dev/null @@ -1,8 +0,0 @@ -#include - -insertFirstNode(L, x) { - -} -int main(void) { - -} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.c" new file mode 100644 index 0000000..2b2a714 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.c" @@ -0,0 +1,80 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include "InsertLinkedList.h" + +//공백 연결 리스트를 생성하는 연산 +linkedList_h* createLinkedList_h(void) { + linkedList_h* L; + L = (linkedList_h*)malloc(sizeof(linkedList_h)); + L -> head = NULL; + return L; +} + +//연결 리스트의 전체 메모리를 해제하는 연산 +void freeLinkedList_h(linkedList_h* L) { + listNode* p; + while (L -> head != NULL) { + p = L -> head; + L -> head = L -> head -> link; + free(p); + p = NULL; + } +} + +//연결 리스트를 순서대로 출력하는 연산 +void printList(linkedList_h* L){ + listNode *p; + printf("L = ("); + p = L -> head; + while ( p != NULL) { + printf("%s", p -> data); + p = p -> link; + if(p != NULL) printf(", "); + } + printf("\n"); +} + +// 첫번째 노드로 삽입하는 연산 +void insertFirstNode(linkedList_h * L, char* x){ + listNode* newNode; + newNode = (listNode*)malloc(sizeof(listNode)); //삽입할 새 노드 할당 + strcpy(newNode -> data, x); //새 노드의 데이터 필드에 x 저장 + newNode -> link = L -> head; + L -> head = newNode; +} + +//노드를 pre 뒤에 삽입하는 연산 +void insertMiddleNode(linkedList_h* L, listNode *pre, char* x) { + listNode* newNode; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode -> data, x); + if (L -> head == NULL) { //공백 리스트인 경우 + newNode -> link = NULL; // 새 노드를 첫 번째이자 마지막 노드로 연결 + L -> head = newNode; + } + else if(pre == NULL) { //삽입 위치를 지정하는 포인터 pre가 NULL인 경우 + newNode -> link = L -> head; //새 노드를 첫 번째 노드로 삽입 + L -> head = newNode; + } + else { // 포인터 pre의 노드 뒤에 새 노드 연결 + newNode -> link = pre -> link; + pre -> link = newNode; + } +} + +void insertLastNode(linkedList_h* L,char* x) { + listNode* newNode; + listNode* temp; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode -> data, x); + newNode -> link = NULL; + if (L -> head == NULL) { //현재 리스트가 공백인 경우 + L -> head = newNode; + return; + } + temp = L -> head; + while(temp -> link != NULL) temp = temp -> link; // 현재 리스트의 마지막 노드를 찾음 + temp -> link = newNode; //새 노드를 마지막 노드(temp)의 다음 노드로 연결 +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.h" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.h" new file mode 100644 index 0000000..73f6be8 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/InsertLinkedList.h" @@ -0,0 +1,19 @@ +#pragma once + +//단순 연결 리스트의 노드 구조를 구조체로 정의 +typedef struct ListNode { + char data[4]; + struct ListNode* link; +} listNode; + +// 리스트 시작을 나타내는 head 노드를 구조체로 정의 +typedef struct { + listNode* head; +} linkedList_h; + +linkedList_h* createLinkedList_h(void); +void freeLinkedList_h(linkedList_h* L); +void printList(linkedList_h * L); +void insertFirstNode(linkedList_h * L, char* x); +void insertMiddleNode(linkedList_h * L, listNode * pre, char* x); +void insertLastNode(linkedList_h* L, char* x); \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1" new file mode 100755 index 0000000000000000000000000000000000000000..4835269e6fde16f661f051312de45985d28c2875 GIT binary patch literal 33944 zcmeI5e{57$7RT?Kwsb57Dybmo+E=Ay*bsinCTcKw2q=vO8o{J0a2YzUbfmQG%ycb_ zt|O&c3TBtVB2D-aO!!r;rc{hIhFIci{KM!%c3q>1p~S?tGmZKmgVg#x_ubdNnW7|X z{KuS|oOkaz_uO;O{oLEv{_}c2y*Bh?p%8{Z@j-5dn7Kl<2oo(KWy|J&K@{Qxo$<(y3B4h-paHIt>?i^f|OK|GG;f$w1O%--X=IwyfZnD z59ze7(UL3Tqir;#jK&%_M@LQB@%(-#-V*IWx;LI*#{)xEq^yp{BH{Wiqk86gm+N@9 zX=tQ-i#ImerEIK!CR`tq;rf~erDw)le~Xh}l@3CBb`0I6D%yv3h?L8hu3IXXty#U+ z*$qn{0@SKx)r6CT(k_BXxuwCg4L=(%0AE!sXS~+L1T<)0-7R=NVUvYjYRe4}lcW`F7WyAw}qeVOZ1cX#3| zug`*e5+}9(fa_!3llZUKCwEq&O6v<*WlcCf!b57cZPR9)PZ#*dUNDw zBh9oPqholPNC+c->0R>47wP_dD_vrU^kvk;JC}CAZ=65*VJ*ev>o=_QM}|1()%$at zIMnCQv(f|b3sB4)D}5OAjG+Jfk&)>c@jZNxH8t( zdk3YuUrTmlT#qy1;kNOEQit0_;7{H`Sju46?$puU=Fq`&spChGRq9aZxD_T}IfA5K zOulqNudu>=&NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz4U?~_1L-1)++C{Ev|;S1lm z`ra6|{@^UG%=};iOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>N zfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>N zfC(@GCcp%KGXf?eS3*J%y6b%Owpp~j7tYdM;%-rG3%9siuEiN=;2#JWxWw4N1=_|E z2rl%- zTdlO4?CQptEo<#y$c~6xsv~wVW>wuCXtkQZY z-_bW{y;Ju$Xr1m4CjUmQ_v(0Y=&)0lD*wRKtJCG`Uj1m6elkm^tBG;vwYtz42-Usv zH?o=7Xb%%|zX=~8`_u{Ci2f=F72s$Vrca@8EWh~7IitG`yJ@jpD4JgV*DEv2njZMRW73tr z%AKv#3cG`O!{2@I!=D$|ymrT;eXl>?*wbz$D-8SjRAEvjpmbc8@ozT%>iK`Z m_;RfKFVh|mzMg;N_{IZ=qOI5eK6S=38z1byYpC*=L+d9jRIVui literal 0 HcmV?d00001 diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1.c" new file mode 100644 index 0000000..a923318 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex4_1.c" @@ -0,0 +1,31 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include "InsertLinkedList.h" + +int main(void){ + linkedList_h* L; + L = createLinkedList_h(); + printf("(1) 공백 리스트 생성하기! \n"); + printList(L); + + printf("(2) 리스트에 [수] 노드 삽입하기! \n"); + insertFirstNode(L, "수"); + printList(L); + + printf("(3) 리스트 마지막에 [금] 삽입하기! \n"); + insertLastNode(L, "금"); + printList(L); + + printf("(4) 리스트 첫번째에 [월] 삽입하기! \n"); + insertFirstNode(L, "월"); + printList(L); + + printf("(5) 리스트 공간을 해제하여 공백 리스트로 만들기! \n"); + freeLinkedList_h(L); + printList(L); + + + getchar(); return 0; +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2" new file mode 100755 index 0000000000000000000000000000000000000000..984117e75d5adb10b572e9d08e0fa7297d4c4117 GIT binary patch literal 34120 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 J&raL4{tE~&=j8wZ literal 0 HcmV?d00001 diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2.c" new file mode 100644 index 0000000..c37b692 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex4_2.c" @@ -0,0 +1,38 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include "linkedList.h" + +int main(void){ + linkedList_h* L; + listNode* p; + L = createLinkedList_h(); + + printf("(1) 리스트에 [월], [수], [일] 노드 삽입하기! \n"); + insertLastNode(L, "월"); insertLastNode(L, "수"); insertLastNode(L, "일"); + printList(L); + + printf("\n (2) 리스트에서 [수] 노드 탐색하기! \n"); + p = searchNode(L, "수"); + if (p == NULL) printf("찾는 데이터가 없습니다. \n"); + else printf("[%s]를 찾았습니다. \n", p -> data); + + printf("\n (3) 리스트의 [수] 뒤에 [금] 노드 삽입하기! \n"); + insertMiddleNode(L, p, "금"); + printList(L); + + printf("\n (4) 리스트에서 [일] 노드 삭제하기! \n"); + p = searchNode(L, "일"); + deleteNode(L, p); + printList(L); + + printf("\n (5) 리스트 순서를 역순으로 바꾸기! \n"); + reverse(L); + printList(L); + + freeLinkedList_h(L); + getchar(); + + return 0; +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.c" new file mode 100644 index 0000000..e364fdc --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.c" @@ -0,0 +1,133 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include "linkedList.h" + +//공백 연결 리스트를 생성하는 연산 +linkedList_h* createLinkedList_h(void) { + linkedList_h* L; + L = (linkedList_h*)malloc(sizeof(linkedList_h)); + L -> head = NULL; + return L; +} + +//연결 리스트의 전체 메모리를 해제하는 연산 +void freeLinkedList_h(linkedList_h* L) { + listNode* p; + while (L -> head != NULL) { + p = L -> head; + L -> head = L -> head -> link; + free(p); + p = NULL; + } +} + +//연결 리스트를 순서대로 출력하는 연산 +void printList(linkedList_h* L){ + listNode *p; + printf("L = ("); + p = L -> head; + while ( p != NULL) { + printf("%s", p -> data); + p = p -> link; + if(p != NULL) printf(", "); + } + printf("\n"); +} + +// 첫번째 노드로 삽입하는 연산 +void insertFirstNode(linkedList_h * L, char* x){ + listNode* newNode; + newNode = (listNode*)malloc(sizeof(listNode)); //삽입할 새 노드 할당 + strcpy(newNode -> data, x); //새 노드의 데이터 필드에 x 저장 + newNode -> link = L -> head; + L -> head = newNode; +} + +//노드를 pre 뒤에 삽입하는 연산 +void insertMiddleNode(linkedList_h* L, listNode *pre, char* x) { + listNode* newNode; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode -> data, x); + if (L -> head == NULL) { //공백 리스트인 경우 + newNode -> link = NULL; // 새 노드를 첫 번째이자 마지막 노드로 연결 + L -> head = newNode; + } + else if(pre == NULL) { //삽입 위치를 지정하는 포인터 pre가 NULL인 경우 + newNode -> link = L -> head; //새 노드를 첫 번째 노드로 삽입 + L -> head = newNode; + } + else { // 포인터 pre의 노드 뒤에 새 노드 연결 + newNode -> link = pre -> link; + pre -> link = newNode; + } +} + +void insertLastNode(linkedList_h* L,char* x) { + listNode* newNode; + listNode* temp; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode -> data, x); + newNode -> link = NULL; + if (L -> head == NULL) { //현재 리스트가 공백인 경우 + L -> head = newNode; + return; + } + temp = L -> head; + while(temp -> link != NULL) temp = temp -> link; // 현재 리스트의 마지막 노드를 찾음 + temp -> link = newNode; //새 노드를 마지막 노드(temp)의 다음 노드로 연결 +} + +//리스트에서 노드 p를 삭제하는 연산 +void deleteNode(linkedList_h* L, listNode* p) { + listNode* pre; + if(L -> head != NULL) return; //공백 리스트라면 삭제 연산 중단 + if(L -> head -> link == NULL) { + free(L -> head); //첫 번째 노드를 메모리에서 해제하고 + L -> head = NULL; + return; + } + else if (p == NULL) return; + else { + pre = L -> head; + while (pre -> link != p) { + pre = pre -> link; + } + pre -> link = p -> link; + free(p); + } +} + +//리스트에서 x노드를 탐색하는 연산 +listNode* searchNode(linkedList_h* L, char* x) { + listNode* temp; + temp = L -> head; + while (temp != NULL) { + if (strcmp(temp -> data, x) == 0) return temp; //탐색 성공 + else temp = temp -> link; + } + return temp; +} + +//리스트의 노드 순서를 역순으로 바꾸는 연산 +void reverse(linkedList_h* L) { + listNode* p; + listNode* q; + listNode* r; + + p = L -> head; //포인터 p를 첫 번째 노드에 설정 + q = NULL; + r = NULL; + + //리스트의 첫 번째 노드부터 링크를 따라 다음 노드로 이동하면서 + // 노드 간의 연결을 바꿈 + while (p != NULL) { + r = q; + q = p; + p = p -> link; + q -> link = r; + } + L -> head = q; + +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.h" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.h" new file mode 100644 index 0000000..2182a1b --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2652/linkedList.h" @@ -0,0 +1,22 @@ +#pragma once + +//단순 연결 리스트의 노드 구조를 구조체로 정의 +typedef struct ListNode { + char data[4]; + struct ListNode* link; +} listNode; + +// 리스트 시작을 나타내는 head 노드를 구조체로 정의 +typedef struct { + listNode* head; +} linkedList_h; + +linkedList_h* createLinkedList_h(void); +void freeLinkedList_h(linkedList_h* L); +void printList(linkedList_h * L); +void insertFirstNode(linkedList_h * L, char* x); +void insertMiddleNode(linkedList_h * L, listNode * pre, char* x); +void insertLastNode(linkedList_h* L, char* x); +void deleteNode(linkedList_h* L, listNode* p); +listNode* searchNode(linkedList_h* L, char* x); +void reverse(linkedList_h* L); From 83e018483522552f718ef2c32c04fc5275a5b297 Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Tue, 31 Mar 2026 11:59:05 +0900 Subject: [PATCH 3/9] =?UTF-8?q?4=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -실습 1,2,3,4 구현 --- .vscode/tasks 2.json | 29 ++++++ .../CircularLinkedList.c" | 91 +++++++++++++++++++ .../CircularLinkedList.h" | 16 ++++ .../\354\213\244\354\212\2653/ex4_3.c" | 27 ++++++ .../DoubleLinkedList.c" | 65 +++++++++++++ .../DoubleLinkedList.h" | 17 ++++ .../\354\213\244\354\212\2654/ex4_4.c" | 29 ++++++ 7 files changed, 274 insertions(+) create mode 100644 .vscode/tasks 2.json create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.h" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/ex4_3.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.c" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.h" create mode 100644 "4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/ex4_4.c" diff --git a/.vscode/tasks 2.json b/.vscode/tasks 2.json new file mode 100644 index 0000000..ffb5da9 --- /dev/null +++ b/.vscode/tasks 2.json @@ -0,0 +1,29 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: clang 활성 파일 빌드", + "command": "/usr/bin/clang", + "args": [ + "-fcolor-diagnostics", + "-fansi-escape-codes", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "디버거에서 생성된 작업입니다." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.c" new file mode 100644 index 0000000..37f93c0 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.c" @@ -0,0 +1,91 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include "CircularLinkedList.h" + +linkedList_h* createLinkedList_h(void) { + linkedList_h* CL; + CL = (linkedList_h*)malloc(sizeof(linkedList_h)); + CL->head = NULL; + return CL; +} + +void printList(linkedList_h* CL) { + listNode* p; + printf(" CL = ("); + p = CL->head; + + if (p == NULL) { + printf(") \n"); return; + } + do { + printf("%s", p->data); + p = p->link; + if (p != CL->head) printf(", "); + } while (p != CL->head); + printf(") \n"); +} + +void insertFirstNode(linkedList_h* CL, char* x) { + listNode* newNode, * temp; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode->data, x); + if (CL->head == NULL) { + CL->head = newNode; + newNode->link = newNode; + } + else { + temp = CL->head; + while (temp->link != CL->head) + temp = temp->link; + newNode->link = temp->link; + temp->link = newNode; + CL->head = newNode; + } +} + +void insertMiddleNode(linkedList_h* CL, listNode* pre, char* x) { + listNode* newNode; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode->data, x); + if (CL->head == NULL) { + CL->head = newNode; + newNode->link = newNode; + } + else { + newNode->link = pre->link; + pre->link = newNode; + } +} + +void deleteNode(linkedList_h* CL, listNode* old) { + listNode* pre; + if (CL->head == NULL) return; + if (CL->head->link == CL->head) { + free(CL->head); + CL->head = NULL; + return; + } + else if (old == NULL) return; + else { + pre = CL->head; + while (pre->link != old) { + pre = pre->link; + } + pre->link = old->link; + if (old == CL->head) + CL->head = old->link; + free(old); + } +} + +listNode* searchNode(linkedList_h* CL, char* x) { + listNode* temp; + temp = CL->head; + if (temp == NULL) return NULL; + do { + if (strcmp(temp->data, x) == 0) return temp; + else temp = temp->link; + } while (temp != CL->head); + return NULL; +} diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.h" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.h" new file mode 100644 index 0000000..e19880f --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/CircularLinkedList.h" @@ -0,0 +1,16 @@ +#pragma once +typedef struct ListNode { + char data[4]; + struct ListNode* link; +} listNode; + +typedef struct { + listNode* head; +} linkedList_h; + +linkedList_h* createLinkedList_h(void); +void printList(linkedList_h* CL); +void insertFirstNode(linkedList_h* CL, char* x); +void insertMiddleNode(linkedList_h* CL, listNode* pre, char* x); +void deleteNode(linkedList_h* CL, listNode* old); +listNode* searchNode(linkedList_h* CL, char* x); diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/ex4_3.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/ex4_3.c" new file mode 100644 index 0000000..4353ebe --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2653/ex4_3.c" @@ -0,0 +1,27 @@ +#include "CircularLinkedList.h" + +int main(void) { + linkedList_h* CL; + listNode* p; + + CL = createLinkedList_h(); + printf("(1) Create Circular Linked List! \n"); + printList(CL); + + printf("\n(2) Insert First Node! \n"); + insertFirstNode(CL, "A"); + printList(CL); + + printf("\n(3) Insert Middle Node after First! \n"); + p = searchNode(CL, "A"); insertMiddleNode(CL, p, "B"); + printList(CL); + + printf("\n(4) Insert Middle Node after Second! \n"); + p = searchNode(CL, "B"); insertMiddleNode(CL, p, "C"); + printList(CL); + + printf("\n(5) Delete Node! \n"); + p = searchNode(CL, "A"); deleteNode(CL, p); + printList(CL); getchar(); + return 0; +} diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.c" new file mode 100644 index 0000000..1f4e802 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.c" @@ -0,0 +1,65 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include "DoubleLinkedList.h" + +linkedList_h* createLinkedList_h(void) { + linkedList_h* DL; + DL = (linkedList_h*)malloc(sizeof(linkedList_h)); + DL->head = NULL; + return DL; +} + + +void printList(linkedList_h* DL) { + listNode* p; + printf(" DL = ("); + p = DL->head; + + while (p != NULL) { + printf("%s", p->data); + p = p->rlink; + if (p != NULL) printf(", "); + } + printf(") \n"); +} + + +void insertNode(linkedList_h* DL, listNode* pre, char* x) { + listNode* newNode; + newNode = (listNode*)malloc(sizeof(listNode)); + strcpy(newNode->data, x); + if (DL->head == NULL) { + newNode->rlink = NULL; + newNode->llink = NULL; + DL->head = newNode; + } + else { + newNode->rlink = pre->rlink; + pre->rlink = newNode; + newNode->llink = pre; + if (newNode->rlink != NULL) + newNode->rlink->llink = newNode; + } +} + + +void deleteNode(linkedList_h* DL, listNode* old) { + if (DL->head == NULL) return; + else if (old == NULL) return; + else { + old->llink->rlink = old->rlink; + old->rlink->llink = old->llink; + free(old); + } +} + +listNode* searchNode(linkedList_h* DL, char* x) { + listNode* temp; + temp = DL->head; + while (temp != NULL) { + if (strcmp(temp->data, x) == 0) return temp; + else temp = temp->rlink; + } + return temp; +} \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.h" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.h" new file mode 100644 index 0000000..658f362 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/DoubleLinkedList.h" @@ -0,0 +1,17 @@ +#pragma once + +typedef struct ListNode { + struct ListNode* llink; + char data[4]; + struct ListNode* rlink; +} listNode; + +typedef struct { + listNode* head; +} linkedList_h; + +linkedList_h* createLinkedList_h(void); +void printList(linkedList_h* DL); +void insertNode(linkedList_h* DL, listNode* pre, char* x); +void deleteNode(linkedList_h* DL, listNode* old); +listNode* searchNode(linkedList_h* DL, char* x); \ No newline at end of file diff --git "a/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/ex4_4.c" "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/ex4_4.c" new file mode 100644 index 0000000..057bcc1 --- /dev/null +++ "b/4\354\243\274\354\260\250 \352\260\225\354\235\230\354\236\220\353\243\214 \354\213\244\354\212\265/\354\213\244\354\212\2654/ex4_4.c" @@ -0,0 +1,29 @@ +#include +#include "DoubleLinkedList.h" + +int main(void) { + linkedList_h* DL; + listNode* p; + + DL = createLinkedList_h(); + printf("(1) ���� ���� ����Ʈ �����ϱ�! \n"); + printList(DL); + + printf("\n(2) ���� ���� ����Ʈ�� [��] ��� �����ϱ�! \n"); + insertNode(DL, NULL, "��"); + printList(DL); + + printf("\n(3) ���� ���� ����Ʈ�� [��] ��� �ڿ� [��] ��� �����ϱ�! \n"); + p = searchNode(DL, "��"); insertNode(DL, p, "��"); + printList(DL); + + printf("\n(4) ���� ���� ����Ʈ�� [��] ��� �ڿ� [��] ��� �����ϱ�! \n"); + p = searchNode(DL, "��"); insertNode(DL, p, "��"); + printList(DL); + + printf("\n(5) ���� ���� ����Ʈ���� [��] ��� �����ϱ�! \n"); + p = searchNode(DL, "��"); deleteNode(DL, p); + printList(DL); + + getchar(); return 0; +} \ No newline at end of file From f1bf9b407bcbc2ffcd7967e753a9571423891d3e Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Tue, 31 Mar 2026 12:07:32 +0900 Subject: [PATCH 4/9] =?UTF-8?q?DS=5FStore=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -DS_Store 삭제 --- .DS_Store | Bin 8196 -> 0 bytes .gitignore | 1 + 2 files changed, 1 insertion(+) delete mode 100644 .DS_Store create mode 100644 .gitignore diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 40c0ac49c526b58d4a4f9ce59520b32b18d6061a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMU2GIp6u#fI&>1?=0SXk{k;Os~QlaIq{F?2bg8US^E!~#FGP^UWnK{`;hn$b$hfzG$K%`l!_eV|*ZL{CU6!Ur--BcV?E@mOc>FV4R!GJ@?*o z&%O72bG|!0TgDig3wi@%HHy`VkWn2W5Fs!T0ZyN}YzJlRHZ#WL?;d6H8s+gW=?;-LM|zuinL&3TV>ubJyOG3U0HO-^Y8Mj$>s?Z7s9cGzQa3b&F$rnrRz( z-@w!jn$p*8+PX8?>=bO>^=*@ZLX<=)t;`!5TDz{XF1~Kva9w<;vA%(tjSa)Yk~pV! z<))7G5i4gqj|W~NyeZi9abBOgRhKQd*b=y0mMppaRmo*(TBST)?N0Ud%6(~NR*`&b zAMi}acJ~^2mtsW=H?WUEPSX|U#2JJ8OJ=Xo1jYdx=!9}@fS-gO2IWc3|h-98m+XVn=)xjZdg4I07&O%%v-ql z-uqTHZcemq+to2zrOcc)yIPie32fUlA2yAA*Py9;{XLqSHEi9q4|Nw!*UVT(r>*6T znW&Sb(W;vH3+{@k>SR+>g^YQ$V0y=uT2b`(h%Zv*KAjG?)6w}Zx^h9Jb!hh`i&S+V z*RY9xbjb%r3n#8vDa)NlC`uHUAAw9)uaVU*OUoFRqD#R(>o>@1cQL?U z*&YsVsg~7L*2(3_MK>I4YF5<)eA^wG>$MLUHXZ3Q-<3 zx>Hm>6MNl$EpN0BQuvOB<9kHWf7dk5S8LNv&$*%O;!4G|izYFHUTZ)Qv9|PTY7@(Y zX6^ggxZm=DmTD9A;S`anY!z!It{$Xc*@oC@_AEQg&a;o$CH4jThW*H{vFiY)Lc%mu zq8baZ7bEgBS5KUcsw)18?Cx zF5qpvhs*c`pW<^|#kcql-{Tst<2U>+lnYaY3PBWR3o$_z?iT8W4Z=oYldwx@7gB;I z92Oj5AUMBJqT~M1pHK+Lsc}m;5YaKbfrN86r(^8Ft=k@wcl>AQcx6UFz&Ug0#g{B! zxn}*ArW=78M0P2d|4I>`7h~Au^TLmtaWOp_FjZbyV)1y&b`hbBVcd5KgBq}LWgKk}Hg-GO81ivdc#8yj0QKc;C*2NknQ9;nzC~uaCtV(&%Rpo>v zDa`N0T4HS?5l#{RE+$-ISJ@Bj7xo7+VFqTS21`*-@qa(IViz%h$A1?NAPo%}=*Ypw z0FDwDPGT63U<8li3F5*TJcXz69G=GucnPoJb>hQWyh&`hh Date: Tue, 31 Mar 2026 12:11:28 +0900 Subject: [PATCH 5/9] Update .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e43b0f9..496ee2c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -.DS_Store +.DS_Store \ No newline at end of file From be687e44fa0370465d0cf5c3d9e2552cbad1d369 Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Sat, 4 Apr 2026 01:37:43 +0900 Subject: [PATCH 6/9] =?UTF-8?q?5=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -5주차 실습 구현 --- .../\354\213\244\354\212\2651/ex5_1" | Bin 0 -> 50344 bytes .../\354\213\244\354\212\2651/ex5_1.c" | 72 +++++++++++++++++ .../\354\213\244\354\212\2651/stackS.c" | 47 +++++++++++ .../\354\213\244\354\212\2651/stackS.h" | 12 +++ .../\354\213\244\354\212\2652/ex5_2" | Bin 0 -> 34408 bytes .../\354\213\244\354\212\2652/ex5_2.c" | 73 ++++++++++++++++++ .../ex5_2.dSYM/Contents/Info.plist" | 20 +++++ .../Contents/Resources/DWARF/ex5_2" | Bin 0 -> 10452 bytes .../Resources/Relocations/aarch64/ex5_2.yml" | 5 ++ .../\354\213\244\354\212\2652/stackL.c" | 49 ++++++++++++ .../\354\213\244\354\212\2652/stackL.h" | 15 ++++ ...-02 \354\230\244\354\240\204 11.15.50.png" | Bin 0 -> 105849 bytes 12 files changed, 293 insertions(+) create mode 100755 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex5_1" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex5_1.c" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.c" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.h" create mode 100755 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.c" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Info.plist" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Resources/DWARF/ex5_2" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Resources/Relocations/aarch64/ex5_2.yml" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/stackL.c" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/stackL.h" create mode 100644 "5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/\354\212\244\355\201\254\353\246\260\354\203\267 2026-04-02 \354\230\244\354\240\204 11.15.50.png" diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex5_1" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/ex5_1" new file mode 100755 index 0000000000000000000000000000000000000000..8c7c001836dbf6b44a67c891fdd2c3553f46132d GIT binary patch literal 50344 zcmeI3TWnm_6^7T0$BsQXjuYG_rmb>p(bO?0mqLVFDb4ss?Ep!H{a`L-`!0t-beJd+-0O{p~X|Pd@$GCl?Aud;;^s*TM61MGlIEkw_`L0dCB`>hIUz zU4Q3Z&8{?i^UBocBGoyJg~l}3w=}Puw)clt=ERLril_(NX=CEy;kX;1%hqeaV%1yF z!@x9lhfX3O31{H6#>C=7?XiogY`tyyj^6d|3XQ#b`K}%q+Gb2gEIt_N-+wV)dERDM zuiu^5*lS*G%^Ne+|D#BMr-}4;4cPHYy*FLGR$UC!I9tP+aaz5HC*j7_RX10g+P!<4 zoZASwF9CYnvick()s<~A+?f3Xo@=)anEh_b&Z+N!fe(#5vxtQg{qEM>t>MAdyrX?VRSdS@i5{E#9D*0uQ(yH8h!B_ z&bn(b-Us(u5P`b)KD_ff{uDZTXW3SSgaz04f9p_eaBFX*eQW1PZzp24ufesB-G9IK zj$8hl6KHgXo+2N$^x1z%^6?HYXV1}c%Y&u7o$95|oq)U9$8Zl}+! zg6o{a{dW5s;9@PPr)eY>5BF`U*@C(v?aszc=v03L&ZYfkH&$M1-+*iWD7bBKgf)Fx zOV`R=1D5CeLNoaO-2RM6GtO30A&EN|*2oObRgy-px%oAr8LUsv=9sf9_C4l1@PF?c zlewi)-_#OxCQfcl{Ue<|HY;+o>Z8b`vac-pbCGe}YsutElWIh+61DBlm9>>VnbCOj zT1i&CUzyT9OQY3O=`pt^kM`Tpo%iZalqC;B_jNoI?^4Nb=rsBgGYdHd&*9t$8lY`+ zfOh^!BsGb3sy~4myw6w~eSK;vN0KjJLcb6C7Py7ct5yN@GnxX;rO^|UHakz9_L=`( zmb}lcO`n-L_h!8lUqMf=-?@{ilTW8IdRpT-)KTG+^R|Xnp1cDZ_V~u~B+fUU(Zc!G z>Ulm+r`LPWl0K<-;h$OpzkJj^S-UZ%d~A)X^5l1*@h6;9&-4WPGw=|`kE1^gZ^igg z^zXo5g-?uaOr1hMIc8SY_Ck3Q@9p@L?wZ+4t$D9JIloHIe;w<7=B|4M{rsxXd9NN` zlJP_C{7aXZ$LDH1A3jm5_f|87GurR#Hrz+CKXhLF8_(L~JkL1jjDta|Dc;u6V?|g7ezu?e$};zyBfh>iXNQ7P8yrM!$0k@$FFp zSBt7-u^n9enXo6=kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011%5RV7fI!2dYHiWAO% z!0CTQ(@1~>NPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCR1Hm|Kllft?{INT#Q3`Av{YBt5& zI(lTsP^??N8<2+*ehEkdt>l@$Zd4KO7>b8Ycet%HJSYW`n6rL;Ut6SKHbrGu%-(-@ z9D1!kps(U-@4rf?snQMH-_MGOvYR4iC0HpEtZk%xA?QUGR%9+2#jfa6u*Y9-W z5;v}Ka|vX| zMdn;iCbI9y*bq%r@54j^(79!Yu!-uG7zeLWykGQ6pcMJ+Z-ujX3)W$nIZFw0!0)>t z{s5-%CvqRW1+KPQSA02r7 z?DKzl=vOzD{_?3nDz#&z=*6GB@N&z*@6UD32L3!Z*W=&YlAC_u*ALu(@Ppqz((v$& z$FFpLu;|>ef96i5N~^Ek^6`ncfBM$k^z$W+>z^&%^xuMWM}9YdrTSmC|A(y~oH}#Y z@#(6yAJ$(ud*t-aj~=Z)R`G{hpL^uci(}n+7rt!&mCnDEj^2MDGjv?o?qQuE{S2mkm)sdHQZ1ALGQ8vp +#include "stackS.h" +#include + +int top = -1; + +int isStackEmpty() { + if (top== -1) return 1; + else return 0; +} + +int isStackFull() { + if(top == STACK_SIZE -1) return 1; + else return 0; +} + +void push (element item) { + if (isStackFull()) { + printf("\n\n Stack is full! \n"); + return; + } + else stack[++top] = item; +} + +element pop() { + if(isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + return -0; + } + else return stack[top--]; +} + +element peek() { + if (isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + exit(1); + } + else return stack[top]; +} + +void printStack() { + int i; + printf("\n STACK [ "); + for (i = 0; i <= top; i++) { + printf("%d", stack[i]); + printf("] "); + } +} + +int main(void) { + element item; + printf("\n** 순차 스택 연산 **\n"); + printStack(); + push(1); printStack(); + push(2); printStack(); + push(3); printStack(); + + item = peek(); printStack(); + printf("peek => %d", item); + + item = pop(); printStack(); + printf("\n pop => %d", item); + + item = pop(); printStack(); + printf("\n pop => %d", item); + + item = pop(); printStack(); + printf("\n pop => %d", item); + + getchar(); return 0; + +} \ No newline at end of file diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.c" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.c" new file mode 100644 index 0000000..f5b6a5a --- /dev/null +++ "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.c" @@ -0,0 +1,47 @@ +#include +#include "stackS.h" + +int top = -1; + +int isStackEmpty() { + if (top== -1) return 1; + else return 0; +} + +int isStackFull() { + if(top == STACK_SIZE -1) return 1; + else return 0; +} + +void push (element item) { + if (isStackFull()) { + printf("\n\n Stack is full! \n"); + return; + } + else stack[++top] = item; +} + +element pop() { + if(isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + return -0; + } + else return stack[top--]; +} + +element peek() { + if (isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + exit(1); + } + else return stack[top]; +} + +void printStack() { + int i; + printf("\n STACK [ "); + for (i = 0; i <= top; i++) { + printf("%d", stack[i]); + printf("] "); + } +} diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.h" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.h" new file mode 100644 index 0000000..fe5cd22 --- /dev/null +++ "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2651/stackS.h" @@ -0,0 +1,12 @@ +#pragma once +#define STACK_SIZE 100 + +typedef int element; // 스택 원소(element)의 자료형을 int로 정의 +element stack[STACK_SIZE]; // 1차원 배열 스택 선언 + +int isStackEmpty(); +int isStackFull(); +void push(element item); +element pop(); +element peek(); +void printStack(); \ No newline at end of file diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2" new file mode 100755 index 0000000000000000000000000000000000000000..eb382a923d9a76de8d04f653817ce16c4ba6a7d8 GIT binary patch literal 34408 zcmeI5U2I%O6~|}&(b$d~Tfw4G8hj%)!Esx!o7CW-mac1?CQ6i8$ySQ!$7Jojwzsx- zxBJn=Z3r8j1d_H=76OF_gi!)@L=kRDkWDEywFDI+trJ2DJb=ZMQ@K)6d8i|$=Kr62 zuXA^s&`K2#Nax6B=A4;1=g$1*&iZM0-njhs`_)PX6r=>Y5;{?))FEZTQtH#tO;D}7 z+V1cCO6QL4Y%LTMT-fvhk9od{fm(+73Z5;=HzR3N6`1@t8nvyp%JZn(wS5&-nZlz zuJ;``U(D^N?-ze=wrib@?}^2uIu`Fu7{4&zLlw^ac5^U^ndRO`NkZyT?>~0;iRY@zKQa9LtFNy|n+3&` zAUESByV=-=UEuXH&e^Qb^efeX^)b(k%foFp&uxXnKIc8%isK!)Iv31m=Wse>4>jG_ zgn7lfok*_Ns+6_D663CpE-#4+nFSruPck~>f9!!j#UIyz9JA>7*pyD!s;4S zZpU1Wn#8*57E!Zpwk9-*@%gDzeQ|L_oxAd6;M5iPqto>hsw8**$4VWaEmaF+(|Y1k zX=tG#pe8pX_d4WmK<>BDwy9h#%sG7vSDtJ;g*+d~=bz6U^1ZpZ`0T7wcX19_$T2ll zpMM6=dIitLKGrcG<~}*MTumCgJhX82xoTk+{d+NfZh2^O3^B|ziaB2I`7d4Ld5^iz z!^c#ee|~)KN6G1rnOmk7%sT3<{Da8L`OGZ?`+z#_+01*Xl-%60AuHd-HDFu?*2f(0 zE-v0=@^o2wtoL}qdZxKQC8w@{Zw2;pti67Myv+FBR{kE0{|nY>q3;>ge};x&A4Pp0 zx*PU4P`?44gpQ8XPy7+}*a-L5H?Ip;9`F3|WA2#gYmHH>^Rt+*g>i@7am+c(HT&}6 zEF9nO_P=ngJk6`~H5gL?9c}0S-FIqn+IfGP@m|!Hgceju{Y7Kn;IpfI_6ot%)KunMfAd$WaB}=JVke8W4ZYbIY$WXrmQv2fBWb&W2F!RLO=)z0U;m+gn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf z5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7=1cZPP5CTF#2nYco@c&Ps zHiz$DLTYo)H|=V3=6k*P4zFpJLI?-}As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7= z1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7= z1cZPP5CTF#2nYcoAOwVf5cr=HuVO5sg~Uqtrfgg3K0DLXA4w@a6d4>$^eCN7#p0P>4AN>VhM8M^OVxXo zxY2#)MijYf7Rymwpf!#gh0Ad5u(~OcRJSnJTw|0T`gq4p)AO z+VB4celMaP_|w@KhcL7W1@AYe{YmJpKA&y3LUEU|5&GMT`WfGBZbetB4gHMwe3&Ml z`$eJ8cz-|Rb8bAhfbpKs@qB&`N}REcyWF7z4^DfzPBHoPYu>W;7r4J9W_lOJ5c(4+>2h|_Z0bS z;eQU=09^+y_ARBaaR_w5A;1~LA<(?V8zs(xa~PcirIS2Sn#bcqj&AUQw4F)^`y-i% zogD~vBzm$#c07{~cA!P?%%rkCnQY3|ZRvEZFV3!D%lwI7&ySB;^G}_eKYAwURO^Gv z-rJ(rH}$CCvlpEG;~9)a$HQYw`?IAfLIs_~B` zC9k=|0_NfBr8^G1zb17g`JKMY{~kGi@9b~C`|V$>{8h`D6RWH(U#uK@5F1 z-(BjRDtq(Xxq*`HyUG{$o! +#include "stackL.h" +#include + +int isStackEmpty() { + if (top== NULL) return 1; + else return 0; +} + +void push (element item) { + stackNode* temp = (stackNode*)malloc(sizeof(stackNode)); + temp->data = item; + temp->link = top; + top = temp; +} + +element pop(){ + element item; + stackNode* temp = top; + + if(isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + return 0; + } + else { + item = temp->data; + top = temp->link; + free(temp); + return item; + } +} + +element peek(){ + if(isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + return 0; + } + else return (top->data); +} + +void printStack() { + stackNode* p = top; + printf("\n STACK [ "); + while(p) { + printf("%d ", p->data); + p = p->link; + } + printf(" ] "); +} + +int main(void) { + element item; + printf("\n** 연결 스택 연산 **\n"); + printStack(); + push(1); printStack(); + push(2); printStack(); + push(3); printStack(); + + item = peek(); printStack(); + printf("peek => %d", item); + + item = pop(); printStack(); + printf("\n pop => %d", item); + + item = pop(); printStack(); + printf("\n pop => %d", item); + + item = pop(); printStack(); + printf("\n pop =>%d \n", item); + + getchar(); return 0; + +} \ No newline at end of file diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Info.plist" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Info.plist" new file mode 100644 index 0000000..dae9684 --- /dev/null +++ "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Info.plist" @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.ex5_2 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Resources/DWARF/ex5_2" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/ex5_2.dSYM/Contents/Resources/DWARF/ex5_2" new file mode 100644 index 0000000000000000000000000000000000000000..ff898e30bd721d3ee5101309f8de3ab6f5d12fe5 GIT binary patch literal 10452 zcmeHNTWlOx89rxr&+KK^*G(LIQ(#k)CaLJ|CfI36AO{pYz|&H~;+q+0o8F^P3O<{I39GoMHGuKG2IQN#@v!sT=g(OaWmimY%gU<^?~CIf=OkGzil5wOetk7f*8PczlwJ0M-}kB`Rn!^e(}nAJFBZ6?fj8ZIb_=v>$u zSU*u*Rfcu(!tk{Rt+xklRlBC7YmCeG!aTe2xM&sfU(Dx=1>$L#*J<+dIBVk39=FHp zxa3~64VYKHeRZnDohxaHSyhe%Zx8(LEPB3 zJ{DP)@iLjRDL2Na+%WO>TQJJq7PHP|<5}B(O?(F|yjJUa4{Q)GH9lT8rq|YE@V91s zn=HJ+Pp=c0rMBb4k6vn;>pS+giT5oFZ*2R9@$};9)0JktrQex&k6JKGJ2r+#`vteU zax-4?_ayu$$*mq zCj;wcfS&Q%xcSgQf3>=#%$WWBOMf%lV0aS`T4cZ1l9?sb|9P^{;^CU?eU?0G+2fWR zv+NI%4BPVa82*XpCw1eDk*-w@ebPu}j55=+m62*HJvERoRnIa#pUM`PUNVd+9E&9! z@MK(-9^h-0Nv2n!c7~GyCj(9foD4V_a5CUzz{!A<0Ve}a2Am8y8E`Ui=M21ohjxKC z_4E>ubAG$Eg(iBE2Z8yNdKfaRS}#MUUfn63#yh7Or00o{C^d# z>YQj-hlNW`h}Hzy1)KFj>w%W5+OS}YVzYk{-dBaHCZQGTg#{6~C_2IW6GDS?2Us5@ zKnSn_sA%Tuym`V!q52n~kW1U=#b$tc$!-O-C_4QM@)Rz0ctQB!>Pm>9dO>v2DuAor zF90?nJg}&PM+MgwC^DDdJH0Rr%N*2=vtLc(q7$MsA-Z9rtMsehgHqR#5TO;_^os6+ z<+o_7?lRqIVXLamDFKx1Gbn{Dn*9D^rIWMzO9m>TJ$k{=4zR0YcWUg8j@{|8J34kJ z$S-#em+zN3`vl{P%YGT|mY+?KqzIL}RIkVFd5|QZ&t*4$L_ZWNeH!9bJRWbm;`aJ7 zas~7Hsh6XuUZ&>2Xo{i)gj$5wV(f5Ujfw z>`?H*o&(wgnu3pPL>n6lA}L*%Tp`jj<_U80HwABtTtUKq*nAO2XZYj!oO&PVRXn!$X%NvDiCE5>- zK2j~$($!ko(BqX#cA`M0Xy4Kci%YM(7+!kn2TR|$5;dp2QR7UXzBiI)(PVbKoGPD< z_8Zeiu2?e4(Zl$vBUQ*G@fv%ySj<(TBmKjb=#fQB5ZnV;03__-Y-OHZcI=G5aSPQ*{@BSWVK^wE>Y2XviLBeO!i z&!feR!7{jXhIj5$%*YvZ$qbE8*3cc5{m*RG$TLuhQGZl+N>}wrOH6i9=`M~otnAZ9 zF+UEv0=fpe3%}-Vpgz#&K!-ttpd+A%K_@|{K~ta-s0KO<`Wom-&{LrQXTJV-?2i@B zNAIWqvfb7(%W5VglPrTA+4)DxQY>%w+OQM`HLnD_d=KRy08BY*SUb2GPYzHV%K{*u=H@+B=cdr4E%OZ&fa{(Ce2zUO9cCvOGP z;cw4S?WopNSE@7Bl +#include "stackL.h" + +int isStackEmpty() { + if (top== NULL) return 1; + else return 0; +} + +void push (element item) { + stackNode* temp = (stackNode*)malloc(sizeof(stackNode)); + temp->data = item; + temp->link = top; + top = temp; +} + +element pop(){ + element item; + stackNode* temp = top; + + if(isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + return 0; + } + else { + item = temp->data; + top = temp->link; + free(temp); + return item; + } +} + +element peek(){ + if(isStackEmpty()) { + printf("\n\n Stack is empty! \n"); + return 0; + } + else return (top->data); +} + +void printStack() { + stackNode* p = top; + printf("\n STACK [ "); + while(p) { + printf("%d ", p->data); + printf("] "); + p = p->link; + } + printf("] "); +} \ No newline at end of file diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/stackL.h" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/stackL.h" new file mode 100644 index 0000000..4ee2ea0 --- /dev/null +++ "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/stackL.h" @@ -0,0 +1,15 @@ +#pragma once +typedef int element; + +typedef struct stackNode { + element data; // int = elemnt + struct stackNode* link; +} stackNode; + +stackNode* top; + +int isStackEmpty(); +void push(element item); +element pop(); +element peek(); +void printStack(); \ No newline at end of file diff --git "a/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/\354\212\244\355\201\254\353\246\260\354\203\267 2026-04-02 \354\230\244\354\240\204 11.15.50.png" "b/5\354\243\274\354\260\250 \354\213\244\354\212\265/\354\213\244\354\212\2652/\354\212\244\355\201\254\353\246\260\354\203\267 2026-04-02 \354\230\244\354\240\204 11.15.50.png" new file mode 100644 index 0000000000000000000000000000000000000000..170a2581270a674347b343f73238528d07d47a67 GIT binary patch literal 105849 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 literal 0 HcmV?d00001 From c179fe31734d3c33494a3aab2b3156280e7a19f5 Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Thu, 16 Apr 2026 00:09:45 +0900 Subject: [PATCH 7/9] =?UTF-8?q?6=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B5=20?= =?UTF-8?q?Queue=20=EC=8B=A4=EC=8A=B5=201,2,3,4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 6주차 실습 Queue 실습 1,2,3,4 구현 --- .../queue1" | Bin 0 -> 34520 bytes .../queue1.c" | 77 +++++++++ .../queue1.dSYM/Contents/Info.plist" | 20 +++ .../Contents/Resources/DWARF/queue1" | Bin 0 -> 10588 bytes .../Resources/Relocations/aarch64/queue1.yml" | 5 + .../queue1.h" | 16 ++ .../queue2" | Bin 0 -> 33832 bytes .../queue2.c" | 81 ++++++++++ .../queue2.h" | 17 ++ .../queue3.c" | 86 ++++++++++ .../queue3.h" | 20 +++ .../queue4" | Bin 0 -> 33976 bytes .../queue4.c" | 148 ++++++++++++++++++ .../queue4.h" | 22 +++ 14 files changed, 492 insertions(+) create mode 100755 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.c" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Info.plist" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/DWARF/queue1" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/Relocations/aarch64/queue1.yml" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.h" create mode 100755 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.c" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.h" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.c" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.h" create mode 100755 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.c" create mode 100644 "6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.h" diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1" new file mode 100755 index 0000000000000000000000000000000000000000..11cb2965e7018fdf3f331a74e04e372baf4ae4d4 GIT binary patch literal 34520 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 A +#include +#include "queue1.h" + +QueueType* createQueue() { + QueueType* Q = (QueueType*)malloc(sizeof(QueueType)); + Q->front = -1; + Q->rear = -1; + return Q; +} + +int isQueueEmpty(QueueType* Q) { +//true =1, false = 0 + if (Q->front == Q->rear) { + printf("큐가 비어있습니다.\n"); + return 1; + } + else return 0; +} + +int isQueueFull(QueueType* Q) { + if(Q->rear == Q_SIZE -1) { + printf("큐가 꽉 찼습니다.\n"); + return 1; + } + else return 0; +} + +void enQueue(QueueType* Q, element item) { + if (isQueueFull(Q)) return; + else { + Q->rear = Q->rear + 1; + Q->queue[Q->rear] = item; + } +} +element deQueue(QueueType* Q) { + if (isQueueEmpty(Q)) return 0; + else { + Q->front = Q->front +1; + return Q->queue[Q->front]; + } +} +element peek(QueueType* Q) { + if (isQueueEmpty(Q)) return 0; + else { + return Q->queue[Q->front + 1]; + } +} + +void printQ(QueueType* Q) { + printf("Queue: [ "); + for (int i = Q->front + 1; i <= Q->rear; i++) { + printf("%c ", Q->queue[i]); + } + printf("]\n"); +} + +int main(void){ + printf("***** 순차 큐 연산 *****\n"); + QueueType* Q1 = createQueue(); + element data; + printf("삽입 A>>"); enQueue(Q1, 'A'); printQ(Q1); + printf("삽입 B>>"); enQueue(Q1, 'B'); printQ(Q1); + printf("삽입 C>>"); enQueue(Q1, 'C'); printQ(Q1); + data = peek(Q1); printf("peek item: %c\n", data); + printf("\n삭제 >>"); data = deQueue(Q1); printQ(Q1); + printf("\t삭제 데이터 : %c", data); + printf("\n삭제 >>"); data = deQueue(Q1); printQ(Q1); + printf("\t삭제 데이터 : %c", data); + printf("\n삭제 >>"); data = deQueue(Q1); printQ(Q1); + printf("\t삭제 데이터 : %c", data); + + printf("\n 삽입 D>>"); enQueue(Q1, 'D'); printQ(Q1); + printf("\n 삽입 E>>"); enQueue(Q1, 'E'); printQ(Q1); + + return 0; +} diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Info.plist" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Info.plist" new file mode 100644 index 0000000..71e68ed --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Info.plist" @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.queue1 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/DWARF/queue1" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/DWARF/queue1" new file mode 100644 index 0000000000000000000000000000000000000000..50e72c8f68b418548bb38005b814e2ee779238fd GIT binary patch literal 10588 zcmeHNTWlOx89rxr&+K|<*Xv~CYih@#PD5(4>sYypiYobsd$5mNBRIl&0A0&>IX^?@cn1b*z0u+ zk@AF?BmZ;$+xg}{|2aF}`S<+(?|=Pgm@&@KLZBe1Nhir^+tIawc7OhlXiLYDH@P4_zEzZ?S=GYx*+Rz3 z7AA{QUXS-47E8{z2B;pR#w6GC`x0kxV0^$japvhUXElzi&4m7b%?BkB-3wa-aZMF# zmI3np@yOS0G~R8rRcqs1+h@t)r$>echuuALRmJ53seVNPQ9ML$Bb+we2=QDP7=6lB zV?)>BbUUVJX|tmRKop-6F+O8YRHv+5wqTQeGrT2t65Zsrd2{hnrBq?cE^okFdew=q zPeCkwVRJ09tm0)dB}ZOA-&+drtb)1qfOu+~ZHO=OJtw{ymF&o)3V4%lHNJ_7l6`q& z{^nkD@cyXA&-H8qq|`1RK3q~$zaFEnJ9w|E_(pd+SieeA*T zXusf*QmV%rf78KxSHX<$elWa3Dv#Z=F@GxxZ(7ZF1$gdO{Ljdq)ysgF0WSky2D}V- z8SpaTW#E4?1N2=l%9~{9^cAp0%8a@1zx4Gy3d0S&Jd^!PN=_>IfRf))@5?8Y{5K`j zdjpLR;>C!@pI34lUff82R>`wUrf;bEY0I9o)76S?P1~uAU1Ch%~4q};)@6Zg<<@*W=e}3_! z>?ePE>xWNv|9mkTT!}2*Pl=zs7~5O;=IBR%>H8#l^6Y2t{wsfiHE3>Kp+$6smPMn! zAbk3W2&>-EO%a0Z(+yKF{gw!XR-iCN%oHuA2$(|X%gZ8oQ}An!%T1w&J`)Xa!QVz> zEEGH{0=j96)&&vOlVU5}TH$Gmh$-4}D;n2miY-zH3)hWB!Is4~z{-Jb3!+J16fyX< zODA}TF|ZkmHn7kwVAP@$&-#I33{-wy8(eP+AMVk#>_P)6XbSi}YKq59;lr%;W$_4Z zgV`fspB}7=y{FKBpr01pSQd;Rpo~!_$ss9r>K};q1<`McUQ&$w7ey2vlwaI9Zi;O* zMC*x(Jy7j5#ST*(kcM4w^XaA@ynP?jHOF*xQ`3s*K~#?{C@_kuPGKx+VeB?4E;&Cw z(lL~^B2?`m3~5l8BzoGs?xu2!P;T+bEmFC~E4S$67Ms4KicW5EY6_cOFfMP-StsL~ z&k2OijZhFIX+q~%ih#eL?tU1TfELulng|3hky&Sfh5|7Ge<0*AK^B~ZreO~*ekSNA zWkd66Vc`$4BM^8#!o^;xeI?k)bz)hVQ*DgrqdZI~5$zS$$it3Fqf-q$-^82OOwH2N z=*vjc7T$>w0P7?**uYlaNkOo%e_DFPcn`@AZjXa2E=toj-n(Y%b#Qe$?ZNZSyg#B{ zpKIj(q>cvYZiaTf(!%#sD1Z;%peIMZl^-SrY_o0r2swi-w)3Mh2*$VYT^%vu>sXlY zxcfp!skNzfd&idTTlI1)QrE+L9mfpAz>|kq!#D=kA7#Taq`U>4uj8=s1ax|g8-~LM zBJdoJk?>_$f}E3g!%lb~f*gu-f}U=i6b7yex|J|5c_(c-R+K7M6B~_toI_M zs3GAg0|T?OIlDWZ!vT%%%XX=pEf%`>9g6qG`?|jg$UijPH;4?_r6rmf@3_ zPE}HNbtW-bOjq-Ep;Ar^LSv0pO4W3wTC%NyaydIyAXDPtogdx2bL0K)JKuiq&dWbb ze4VPI`{HSqNMFE?|wbsDs=)g19*zlzxYy6qBLzcy4b$0y9tj%PwY_e1=R2XWyC1&Sr zniNB2mep2y&#`qy-P)S2TlURX>^yUe!Lq`u3cOh+tG?&gRX&I1icJe0zG^p9~xn8 zQ>^X|#o)uAL5yxbX!_J5is;-EJ>`yf-@W}?JN#Df@6z3`&;PXL zLPPU~m7ma!+?-ObDW{ZgcO7U=Xq{-yDF3u3)F>Xh_f`;{uj>N!fF1|Y1P+4eF-zZG zPJwujFXqQYwYby!TAZG7dO+hp5aDXu<@J538I=5o#B=$W)8y$PpL~}2=pO;&^i*fs KZFyayEBiN=6LNw8 literal 0 HcmV?d00001 diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/Relocations/aarch64/queue1.yml" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/Relocations/aarch64/queue1.yml" new file mode 100644 index 0000000..efae92a --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.dSYM/Contents/Resources/Relocations/aarch64/queue1.yml" @@ -0,0 +1,5 @@ +--- +triple: 'arm64-apple-darwin' +binary-path: "/Users/hataeuk/Documents/Data_Structure_Assignment/6주차 실습/queue1" +relocations: [] +... diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.h" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.h" new file mode 100644 index 0000000..7a542e6 --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue1.h" @@ -0,0 +1,16 @@ +#pragma once +#define Q_SIZE 4 +typedef char element; + +typedef struct { + element queue[Q_SIZE]; + int front, rear; +} QueueType; + +QueueType* createQueue(); +int isQueueEmpty(QueueType* Q); +int isQueueFull(QueueType* Q); +void enQueue(QueueType* Q, element item); +element deQueue(QueueType* Q); +element peek(QueueType* Q); +void printQ(QueueType* Q); diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2" new file mode 100755 index 0000000000000000000000000000000000000000..72d0e7ff889a80646174b16411d58729a9dcff20 GIT binary patch literal 33832 zcmeI5ZA_cj702&mL$OU#NQ0IHy7+0;fQcruwcASap))b8N!K+gO)Io^xgoX*7KRXG zt0W|Er5AgwP<>Neapl3QgOmXN{3 zwJ~l;rd8UPog>}no^#JV=id9f*U$3_?weO*Z;L~}Y6DSN_^{XMy+!hCLfCf^;p2if`gY&stpDv{FL6AlHs4&?0R z>-Fh;m$jele96yE?NUa%9uIW+WT30l$+6DqR<#yB0Zrk!NC44zQaKuY?3Mzn#Zx(zTf@pqr3MG zC)#g0`j0o;?nIl3VxS07i3wLKUCqJxebHvLs`V*9)`9g=o~KH5gRW@YdKB_y&cprq z85v7+!F(P%+!OY9)@`rDyaM|(fz_xe|9Y&8>RN3RFOtuqQ2P+L4QD1v%`3{{2{EzI zXT%pgA{I5GZ{KZ*GpQ0WKUw0QcNUAJs_i0~g1yk!5J&&mMXP)_KQ3iOf2(`mW_KrT z#bV8A5pA}wzEoLz%u!`C>>X3^)fU4C-7v%+OsfJD8WKaBVjD4@3;jpOonv5F@j7bq zkBrN)8;*yZDmRT=n0szhtmMDRjkW*LDYnvjf3>)Hb{~!`%?Iz@3SzP18sT$+)1=eA zbqe}4%6;}|ves}6x(ub9 zSrgl<{SEN%)&5tr{zOge5$$h<{}Jt{{i2*tQ+;J){mWM_e{!uK*2M13&SSkRM!#uK zHkXd09M3|(W_%-JO2zz_5ktQPytmaln)7164Lw!ro-d5YJ4waV=$NLwm?JC1+={-6 z$%re4Z;cx3IM%#@VlmGkYUO{&6~pgB`M(GM8twO?#tZaJs>+>Q=<~!Et%iC}eIDC-=+8621ye5uYMv}Y!HGX3oN^a}&| zK2IRzjRadm=7SM`#J|maRBXD-E6i`2!eMSEG1K22njQX*i6mzFY$DyC(CrS9?!Sde!L^z-LuPbN(2f-!Z@ zM)b)UO)xUwD)3d3U(NfC(@GCcp%k025#WOn?b60Vco%m;e)C z0!)AjFaajO1egF5U;<2l2`~XBzyz286ZromP#(qKaze_Z^fz0OsCx2)2`~XBzyz28 z6JP>NfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz28 z6JP>NfC(@GCcp%k025#WOn?b60Vco%m;e)C0!)AjFaajO1egF5_@5ClG16|7$57}l z*3AC`fC9sKSept#K{o+^XmtyOr8 z;TCBNZn5<|D7H~j)L#)Lva?*e~1ttv-K9*u5ctYuN8m*XWAXzN~hOze~5R z3-oBMy0bOVCBD=x8dJ9V?#IHt?eAz9G|e)joMx=}d`8(q-ET`>Xt`xj-dDG*3sI+S zpSJ6@jeDV0Jnl|b{f7aV;)w;t(>?BFKdSBBKuoq*+hf`e!bUr}ltl2%w~rOrboH(S zh3>h}*G(a>!Ave=CUeYWj+x9d%WP22R2zlu21ZGj3}ag|n@-AgjsvEp$+s_aEebjdD+!L?7)^hNdQ*9TE-kX@{u5r9N%`8^s^$ p*pYZI*6AGn?U7esIXm);rXSqC%k`7Wua|6WzVyMzzV9ns{|0Q-!@~do literal 0 HcmV?d00001 diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.c" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.c" new file mode 100644 index 0000000..7415ec2 --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.c" @@ -0,0 +1,81 @@ +#include +#include +#include "queue2.h" + +QueueType* createCQueue() { + QueueType* cQ; + cQ = (QueueType*)malloc(sizeof(QueueType)); + cQ->front = 0; + cQ->rear = 0; + return cQ; +} + +int isCQueueFull(QueueType *cQ){ + if(((cQ->rear +1) % cQ_SIZE) == cQ -> front) { + printf("큐가 꽉 찼습니다.\n"); + return 1; + } + else return 0; + } + +int isCQueueEmpty(QueueType *cQ){ + if(cQ->front == cQ->rear) { + printf("큐가 비어있습니다.\n"); + return 1; + } + else return 0; +} + +void enCQueue(QueueType *cQ, element item){ + if(isCQueueFull(cQ)) return; + else { + cQ->rear = (cQ->rear + 1) % cQ_SIZE; + cQ->queue[cQ->rear] = item; + } +} + +element deCQueue(QueueType *cQ) { + if(isCQueueEmpty(cQ)) return 0; + else { + cQ->front = (cQ->front +1) % cQ_SIZE; + return cQ->queue[cQ->front]; + } +} + +element peekCQ(QueueType* cQ){ + if(isCQueueEmpty(cQ)) return 0; + else return cQ->queue[(cQ->front + 1) % cQ_SIZE]; +} + +void printCQ(QueueType *cQ) { + int i, first, last; + first = (cQ->front + 1) % cQ_SIZE; + last = (cQ->rear + 1) % cQ_SIZE; + printf("Circular Queue: ["); + i = first; + while (i != last) { + printf("%3c", cQ->queue[i]); + i = (i +1 ) % cQ_SIZE; + } + printf(" ] "); +} + +int main(void) { + QueueType *cQ = createCQueue(); + element data; + printf("\n ***** 원형 큐 연산 ***** \n"); + printf("삽입 A>>"); enCQueue(cQ, 'A'); printCQ(cQ); + printf("삽입 B>>"); enCQueue(cQ, 'B'); printCQ(cQ); + printf("삽입 C>>"); enCQueue(cQ, 'C'); printCQ(cQ); + data = peekCQ(cQ); printf("peek item: %c\n", data); + printf("\n삭제 >>"); data = deCQueue(cQ); printCQ(cQ); + printf("\t삭제 데이터 : %c", data); + printf("\n삭제 >>"); data = deCQueue(cQ); printCQ(cQ); + printf("\t삭제 데이터 : %c", data); + printf("\n삭제 >>"); data = deCQueue(cQ); printCQ(cQ); + printf("\t삭제 데이터 : %c", data); + + printf("\n 삽입 D>>"); enCQueue(cQ, 'D'); printCQ(cQ); + printf("\n 삽입 E>>"); enCQueue(cQ, 'E'); printCQ(cQ); + getchar(); return 0; +} \ No newline at end of file diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.h" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.h" new file mode 100644 index 0000000..be6aa3a --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue2.h" @@ -0,0 +1,17 @@ +#pragma once +#define cQ_SIZE 4 + +typedef char element; + +typedef struct { + element queue[cQ_SIZE]; + int front, rear; +} QueueType; + +QueueType* createQueue(); +int isQueueEmpty(QueueType* cQ); +int isQueueFull(QueueType* cQ); +void enQueue(QueueType* cQ, element item); +element deQueue(QueueType* cQ); +element peekcQ(QueueType* cQ); +void printCQ(QueueType* cQ); \ No newline at end of file diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.c" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.c" new file mode 100644 index 0000000..bd1987a --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.c" @@ -0,0 +1,86 @@ +#include +#include +#include "queue3.h" + +LQueueType* createLinkedQueue(void) { + LQueueType *LQ; + LQ = (LQueueType*)malloc(sizeof(LQueueType)); + LQ->front = NULL; + LQ->rear = NULL; + return LQ; +} + +int isLQEmpty(LQueueType* LQ) { + if(LQ->front == NULL){ + printf(" Linked Queue is empty! "); + return 1; + } + else return 0; +} + +void enLQueue(LQueueType *LQ, element item) { + QNode* newNode = (QNode*)malloc(sizeof(QNode)); + newNode->data = item; + newNode->link = NULL; + if(LQ->front == NULL) { //현재 연결 큐가 공백 상태인 경우 + LQ->front = newNode; + LQ->rear = newNode; + } + else { // 현재 연결 큐가 공백 상태가 아닌 경우 + LQ->rear->link = newNode; + LQ->rear = newNode; + } +} + +element deLQueue(LQueueType* LQ){ + QNode * old = LQ->front; + element item; + if(isLQEmpty(LQ)) return ; + else { + item = old -> data; + LQ->front = LQ->front->link; + if (LQ->front = NULL) + LQ->rear = NULL; + free(old); + return item; + } +} + +element peekLQ(LQueueType* LQ){ + element item; + if (isLQEmpty(LQ)) return; + else { + item = LQ->front->data; + return item; + } +} + +void printLQ(LQueueType* LQ) { + QNode* temp = LQ->front; + printf(" Linked Queue: ["); + while (temp) { + printf("%3c", temp->data); + temp = temp -> link; + } + printf(" ] "); +} + +int main(void) { + LQueueType *LQ = createLQueue(); + element data; + printf("\n ***** 연결 큐 연산 ***** \n"); + printf("삽입 A>>"); enLQueue(LQ, 'A'); printLQ(LQ); + printf("삽입 B>>"); enLQueue(LQ, 'B'); printLQ(LQ); + printf("삽입 C>>"); enLQueue(LQ, 'C'); printLQ(LQ); + data = peekLQ(LQ); printf("peek item: %c\n", data); + printf("\n삭제 >>"); data = deLQueue(LQ); printLQ(LQ); + printf("\t삭제 데이터 : %c", data); + printf("\n삭제 >>"); data = deLQueue(LQ); printLQ(LQ); + printf("\t삭제 데이터 : %c", data); + printf("\n삭제 >>"); data = deLQueue(LQ); printLQ(LQ); + printf("\t삭제 데이터 : %c", data); + + printf("\n 삽입 D>>"); enLQueue(LQ, 'D'); printLQ(LQ); + printf("\n 삽입 E>>"); enLQueue(LQ, 'E'); printLQ(LQ); + getchar(); return 0; +} \ No newline at end of file diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.h" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.h" new file mode 100644 index 0000000..ebb437c --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue3.h" @@ -0,0 +1,20 @@ +#pragma once +typedef char element; + +typedef struct QNode { + element data; + struct QNode* link; +} QNode; + +typedef struct { + QNode* front, * rear; +} LQueueType; + +LQueueType* createLinkedQueue(void); +int isLQEmpty(LQueueType* LQ); +void enLQueue(LQueueType* LQ, element item); +element deLQueue(LQueueType* LQ); +element peekLQ(LQueueType* LQ); +void printLQ(LQueueType* LQ); + + diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4" new file mode 100755 index 0000000000000000000000000000000000000000..cb65e0e2173ed2d8f8ee37abe6168cad9c17f404 GIT binary patch literal 33976 zcmeI5e{56N701uB191{c(k*JCWAf`HrnCtOrEE&N2^>ghCLJjgC}IUDa+KVN*BtkIkFV8oDrPWt%Ws$iC;k z`y9tjU=`Yb=fd^9=f^$w+|Rvs-aq#J&9%$d7ZDkR;zPY1)hr-7LMD1dOHrFpEvvcy z!N$)wZrjS**+mVWt@?n(ah`yqWwkW6w#+uG@uAr|(((eRxgsT1EGub0p40-G{CHtF za=fO6t`Ez+u52lwRJM-~d{SFfS5oLh2Zv);0LV_%BKB33lk(XHg!@s{b$3$rr{%lR=}i~Gv^a2(aL8tPl> zt@T^CJmT&~NFM^Us^qnPD7kXlWvG_5t2<{K=8b2jaxP~ zHf;3HNGdNc$Xs65gE=3KQt4L{r8qy{W&Ef6wVZ@Zz5jP8QobE+1D9?%;jUKoW~t|-(53)b=Bz5 z(_gI!|9kb(RnVEJ?wamG!gr}YvnS)Nf_u@Z^|6dnf%S2mbY2oXZ!Id@-1D#*ZzE$S z7v%HEzC_aQs$N%(yrMhdi1JBPj^6}6JoX+fGcPV5M`gR&k8|WE$?AE_bU%$x^%=uc z>&YQs>cW6Q1L;D_OcaJPK|{9-D3gXf)mJ|Ze`m~Zy*<62#?yY-{h>_22xYKGFJZd! z3QBF8D5X*GD4#~lx^!u16#nkGb3C7KcnWa_`-4|cB!ac%PhHrn=N(E|wU;ngg+XLWLmYtc-uI5%0}dyrcNe1Rb2a)wUjtk>zS`9`^>OTePU-IodMWg7hf}73HtA?onyVHS2z#BU(Fq;b{^DYH|30d zVZO1g)y`+Uu_M(E{vN1x9YkJ#)_EVtSeIRmvr^kn!2UyRKjzt6YMcsfe--xcY5NnL z2lC&}E!HyU8cxj2I$`;O-BBXT=d<_l%W7kpdw7v}VfbNY+j zezCbZ8rx$>%!vJPuWd#Xrrp((+;_KGObtr&fcXVlet$cekD63$-pj@O+cT#xA3UXn zVyHXf-La%OdFYkNZyz!1*Q{YzPxs>F;J3_mt}br3#ZAv|{TzNK>xw21sX>@#^7)a= zhfhCXE^kLfZ?rPHo;Pz<2{p`~Na-5q&~0#aJ+{5a+@Mwz#ov9CX9o^b>9_F;a@9B# zcpnlzyH#tV5-3aYcYW}soRs_Bp0bqszA?UAtkm)% z1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt2mv7= z1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+gn$qb0zyCt{ND+f zn4uXpj9P%|{uTf_C@g!0?*sRW>W6TPd&twc;|%=?+B!SC+sW#QM`KCcq-$98HJ*@vc)-usnEPpnFATkS8+7WnQu+vAPD*$B>3k6k z|G`b8+EA$sEB$o52)bCpjwk6;3Ec16$alR`1LEC|5rd_8NtI=X?Nq~d!OA+^ib|cF zOvA&}M+>d4-Io2h-QJtDt=)E8#Ew%@d)#hI+6}l!mTrsKop#cuWl`GL)fSD>qdmkw zo{$dI)}As>8E5b>9M(UlpqEu@U>+1+<{hY|=yjg~KJ8Ta=p|MS|v zNz41yZSF)ZT0XArVJ-80@Ei|>)%d|eSH?ZZO6E)J+1{t+u$B))hMrBTJc-v_`Pn@A zxjeZ9GT%Lq-6I?W%9l;D<{)h45Vl;x?$&ETZI~5RJFE?^pbay7j`M|0vG`6~?Z{o% zO&vMx^39GU($1D^e_S*M0(#j>T@D?e@&n`pbe}r87A&oL5YA%1Y5Eift-4XOkhheJ z@mR0jYpOaHRL|BdGHe?9xsj)EQ6S7k;H`7-zY;{B!P-dw)q#RI2)+}i!x zrH-+J-;a;)@ojBgFui|d|Cf)v^U70AU#WWGR_#ZR?cHKsIr-~`-EZ7?;_w$2H%H>< zPo8c5-N+CA@$`l6&wl4t@Oy8L LKlS`i6|DaP6da?U literal 0 HcmV?d00001 diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.c" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.c" new file mode 100644 index 0000000..fcd8009 --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.c" @@ -0,0 +1,148 @@ +#include +#include +#include "queue4.h" + +DQueType* createDQue() { + DQueType* DQ; + DQ = (DQueType*)malloc(sizeof(DQueType)); + DQ->front = NULL; + DQ->rear = NULL; + return DQ; +} + +int isDeQEmpty(DQueType* DQ) { + if (DQ->front == NULL) return 1; + else return 0; +} + +void insertFront(DQueType* DQ, element item) { + DQNode* newNode = (DQNode*)malloc(sizeof(DQNode)); + newNode-> data = item; + if (isDeQEmpty(DQ)) { + DQ->front = newNode; + DQ->rear = newNode; + newNode->rlink = NULL; + newNode->llink = NULL; + } + else { + DQ->front->llink = newNode; + newNode->rlink = DQ->front; + newNode->llink = NULL; + DQ->front = newNode; + } +} + + +void insertRear(DQueType* DQ, element item) { + DQNode* newNode = (DQNode*)malloc(sizeof(DQNode)); + newNode->data = item; + if (isDeQEmpty(DQ)) { + DQ->front = newNode; + DQ->rear = newNode; + newNode->rlink = NULL; + newNode->llink = NULL; + } + else { + DQ->rear->rlink = newNode; + newNode->rlink = NULL; + newNode->llink = DQ->rear; + DQ->rear = newNode; + } +} + +element deleteFront(DQueType* DQ) { + DQNode* old = DQ->front; + element item; + if (isDeQEmpty(DQ)) { + printf("\n Linked deQue is empty! \n"); return '\0'; + } + else { + item = old->data; + if (DQ->front->rlink == NULL) { + DQ->front = NULL; + DQ->rear = NULL; + } + else { + DQ->front = DQ->front->rlink; + DQ->front->llink = NULL; + } + free(old); + return item; + } +} + +element deleteRear(DQueType* DQ) { + DQNode* old = DQ->rear; + element item; + if (isDeQEmpty(DQ)) { + printf("\n Linked deQue is empty! \n"); return '\0'; + } + else { + item = old->data; + if (DQ->rear->llink == NULL) { + DQ->front = NULL; + DQ->rear = NULL; + } + else { + DQ->rear = DQ->rear->llink; + DQ->rear->rlink = NULL; + } + free(old); + return item; + } +} + +element peekFront(DQueType* DQ) { + element item; + if (isDeQEmpty(DQ)) { + printf("\n Linked deQue is empty! \n"); return '\0'; + } + else { + item = DQ->front->data; + return item; + } +} + +element peekRear(DQueType* DQ) { + element item; + if (isDeQEmpty(DQ)) { + printf("\n Linked deQue is empty! \n"); return '\0'; + } + else { + item = DQ->rear->data; + return item; + } +} + +void printDQ(DQueType* DQ) { + DQNode* temp = DQ->front; + printf("DeQue : ["); + while (temp) { + printf("%3c", temp->data); + temp = temp->rlink; + } + printf(" ] "); +} + + +int main(void) +{ + DQueType* DQ1 = createDQue(); // ��ũ ���� + element data; + printf("\n ***** 데크 ***** \n"); + printf("\n front 삽입 A>> "); insertFront(DQ1, 'A'); printDQ(DQ1); + printf("\n front 삭제 B>> "); insertFront(DQ1, 'B'); printDQ(DQ1); + printf("\n rear 삽입 C>> "); insertRear(DQ1, 'C'); printDQ(DQ1); + printf("\n front 삭제 >> "); data = deleteFront(DQ1); printDQ(DQ1); + printf("\t삭제 데이터: %c", data); + printf("\n rear 삭제 >> "); data = deleteRear(DQ1); printDQ(DQ1); + printf("\t\t삭제 데이터: %c", data); + printf("\n rear 삽입 D>> "); insertRear(DQ1, 'D'); printDQ(DQ1); + printf("\n front 삽입 E>> "); insertFront(DQ1, 'E'); printDQ(DQ1); + printf("\n front 삽입 F>> "); insertFront(DQ1, 'F'); printDQ(DQ1); + + data = peekFront(DQ1); printf("\n peek Front item : %c \n", data); + data = peekRear(DQ1); printf(" peek Rear item : %c \n", data); + + getchar(); return 0; +} \ No newline at end of file diff --git "a/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.h" "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.h" new file mode 100644 index 0000000..ff5126e --- /dev/null +++ "b/6\354\243\274\354\260\250 \354\213\244\354\212\265/queue4.h" @@ -0,0 +1,22 @@ +#pragma once +typedef char element; + +typedef struct DQNode { + element data; + struct DQNode* llink; + struct DQNode* rlink; +} DQNode; + +typedef struct { + DQNode* front, * rear; +} DQueType; + +DQueType* createDQue(); +int isDeQEmpty(DQueType* DQ); +void insertFront(DQueType* DQ, element item); +void insertRear(DQueType* DQ, element item); +element deleteFront(DQueType* DQ); +element deleteRear(DQueType* DQ); +element peekFront(DQueType* DQ); +element peekRear(DQueType* DQ); +void printDQ(DQueType* DQ); \ No newline at end of file From 2deb41654c96b06bd43d09303b9d002f897fac6f Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Mon, 4 May 2026 18:28:48 +0900 Subject: [PATCH 8/9] =?UTF-8?q?7=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 7주차 실습 구현 --- .../TraversalBT.h" | 13 ++++ .../ex7_1" | Bin 0 -> 33704 bytes .../ex7_1.c" | 57 ++++++++++++++++++ .../ex7_1.dSYM/Contents/Info.plist" | 20 ++++++ .../Contents/Resources/DWARF/ex7_1" | Bin 0 -> 10232 bytes .../Resources/Relocations/aarch64/ex7_1.yml" | 5 ++ .../ex7_2" | Bin 0 -> 33672 bytes .../ex7_2.c" | 43 +++++++++++++ .../folderSize.h" | 10 +++ .../tempCodeRunnerFile.c" | 1 + 10 files changed, 149 insertions(+) create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/TraversalBT.h" create mode 100755 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.c" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Info.plist" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Resources/DWARF/ex7_1" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Resources/Relocations/aarch64/ex7_1.yml" create mode 100755 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_2" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_2.c" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/folderSize.h" create mode 100644 "7\354\243\274\354\260\250 \354\213\244\354\212\265/tempCodeRunnerFile.c" diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/TraversalBT.h" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/TraversalBT.h" new file mode 100644 index 0000000..2e630fc --- /dev/null +++ "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/TraversalBT.h" @@ -0,0 +1,13 @@ +#pragma once +typedef char element; + +typedef struct treeNode { + element data; + struct treeNode* left; + struct treeNode* right; +} treeNode; + +treeNode* makeRootNode(element data, treeNode* leftNode, treeNode* rightNode); +void preorder(treeNode* root); +void inorder(treeNode* root); +void postorder(treeNode* root); diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1" new file mode 100755 index 0000000000000000000000000000000000000000..e814a0494f07ea7ee344dd0f8bfd806972824da3 GIT binary patch literal 33704 zcmeI5Uu@Jx5Xa|t*V6y=pbZ5)=p_OHH3cn^LZbc(G`5HZ3lBv}m(n}vg|^pRuc6pR zf2E=bByxy>1RsD9rKr&$A>~1>AtA;GOnHDr4IB**tmjX2;zcHf%?*jc99P)q8ZRis8VaoU#xhwqGkvpt70?j4MOR%rt zW_$8HR2=^gizpNI0>@@vEVH28@7alWWN(t)_m#2pG%(uf>K*N&=+T?SW!G~kKA1sq za$A><5FL!UDSq;%DjRm2@%aWV9m+A|x}8q(p$w;;Me!K=M?07IB3`uLtuBxCa9pEz zbOl9Yh{t2+yXXwIRLJdYqkrkJo1#PR>{Eyv#|HNkd86G}llv*%jQ>71c1X9g%=oWp z^W4$S@?OM#s5LmoZ70V4)(a%o`w!M2#JKf<^{TMmz2`8%DjlqhXeL=TL-};>oAbqe zR;E?sBJ0v1?%=xHb?O7e9t7v3?&6V6=wsjhgs*4zi0SzDCVcMMBR`Y;>CjT{s)WF2<}TWIRGKustVsSf!A zROBX$`}&Zv-Id73OeId%X5@HJQ_YPk&=F{8j|5a>pdPuLDa%RYOnJ@q)9q3HV(@^K*PY}F1OFB`pV{=}0{%?f2j?Foq*+yP@J>GKqpLgs&r@s<5 z#_>=sub@n}H>B8{E;<9sIoFfhK2ra1HkCLVz=9RZBwA`bVKwu%Gh6@bRba_+xpOtQ zA3Hq&M`G`V@bRs_K`tE5rEjbb{k6^{T*^+5&xN$s4<)WHXP6P_SfZY$eYZ|Mx8%zs zhnBx^c3OME)w~l^H@>!N&qwcbZzLu@Rt6xD+2@DTx)96$GXmR zy}s+mul82H`_#ve+8>@geCW^g-o6>-1tq_H`+fI!17CbnSXFdl#=P5E!+XAtJ!H*eT7Lt`8h$na literal 0 HcmV?d00001 diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.c" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.c" new file mode 100644 index 0000000..e31cd85 --- /dev/null +++ "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.c" @@ -0,0 +1,57 @@ +#include +#include +#include "TraversalBT.h" + +treeNode* makeRootNode(element data, treeNode* leftNode, treeNode* rightNode) { + treeNode* root = (treeNode*)malloc(sizeof(treeNode)); + root->data = data; + root->left = leftNode; + root->right = rightNode; + return root; +} + +void preorder(treeNode* root) { + if (root) { + printf("%c", root->data); + preorder(root->left); + preorder(root->right); + } +} + +void inorder(treeNode* root) { + if (root) { + inorder(root->left); + printf("%c", root->data); + inorder(root->right); + } +} + +void postorder(treeNode* root) { + if (root) { + postorder(root->left); + postorder(root->right); + printf("%c", root->data); + } +} + +int main(void) { + //(A+B-C/D) 수식 이진 트리 만들기 + treeNode* n7 = makeRootNode('D', NULL, NULL); + treeNode* n6 = makeRootNode('C', NULL, NULL); + treeNode* n5 = makeRootNode('B', NULL, NULL); + treeNode* n4 = makeRootNode('A', NULL, NULL); + treeNode* n3 = makeRootNode('/', n6, n7); + treeNode* n2 = makeRootNode('*', n4, n5); + treeNode* n1 = makeRootNode('-', n2, n3); + + printf("\n preorder : "); + preorder(n1); + + printf("\n inorder : "); + inorder(n1); + + printf("\n postorder : "); + postorder(n1); + + getchar(); return 0; +} \ No newline at end of file diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Info.plist" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Info.plist" new file mode 100644 index 0000000..14502c5 --- /dev/null +++ "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Info.plist" @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.ex7_1 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Resources/DWARF/ex7_1" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/ex7_1.dSYM/Contents/Resources/DWARF/ex7_1" new file mode 100644 index 0000000000000000000000000000000000000000..106d04f29dffd3095db1e62722b58bc66baa3af2 GIT binary patch literal 10232 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 +#include +#include "folderSize.h" + +treeNode* makeRootNode(int size, treeNode* leftNode, treeNode* rightNode) { + treeNode* root = (treeNode*)malloc(sizeof(treeNode)); + root->size = size; + root->left = leftNode; + root->right = rightNode; + return root; +} + +int postorder_FolderSize(treeNode* root) { + if (root) { + postorder_FolderSize(root->left); + postorder_FolderSize(root->right); + FolderSize += root->size; + } + return FolderSize; +} + +int main(void) { + treeNode* F11 = makeRootNode(120, NULL, NULL); + treeNode* F10 = makeRootNode(55, NULL, NULL); + treeNode* F9 = makeRootNode(100, NULL, NULL); + treeNode* F8 = makeRootNode(200, NULL, NULL); + treeNode* F7 = makeRootNode(68, F10, F11); + treeNode* F6 = makeRootNode(40, NULL, NULL); + treeNode* F5 = makeRootNode(15, NULL, NULL); + treeNode* F4 = makeRootNode(2, F8, F9); + treeNode* F3 = makeRootNode(10, F6, F7); + treeNode* F2 = makeRootNode(0, F4, F5); + treeNode* F1 = makeRootNode(0, F2, F3); + + FolderSize = 0; + printf("\n\n C: \\의 용량 : %d M \n", postorder_FolderSize(F2)); + FolderSize = 0; + printf("\n\n D: \\의 용량 : %d M \n", postorder_FolderSize(F3)); + FolderSize = 0; + printf("\n 내 컴퓨터의 전체 용량: %d M \n", postorder_FolderSize(F1)); + + getchar(); return 0; +} \ No newline at end of file diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/folderSize.h" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/folderSize.h" new file mode 100644 index 0000000..cb80e1f --- /dev/null +++ "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/folderSize.h" @@ -0,0 +1,10 @@ +#pragma once +int FolderSize; +typedef struct treeNode { + int size; + struct treeNode* left; + struct treeNode* right; +} treeNode; + +treeNode* makeRootNode(int size, treeNode* leftNode, treeNode* rightNode); +int postorder_FolderSize(treeNode* root); \ No newline at end of file diff --git "a/7\354\243\274\354\260\250 \354\213\244\354\212\265/tempCodeRunnerFile.c" "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/tempCodeRunnerFile.c" new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ "b/7\354\243\274\354\260\250 \354\213\244\354\212\265/tempCodeRunnerFile.c" @@ -0,0 +1 @@ +4 \ No newline at end of file From 84b23764774a44998ff823752719b0e5d0047bda Mon Sep 17 00:00:00 2001 From: ChocoChip0519 Date: Sat, 16 May 2026 00:54:43 +0900 Subject: [PATCH 9/9] =?UTF-8?q?8=EC=A3=BC=EC=B0=A8=20=EC=8B=A4=EC=8A=B5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../adjMatrix.c" | 37 +++++++++++ .../adjMatrix.h" | 13 ++++ .../ex8_1.c" | 66 +++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 "8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.c" create mode 100644 "8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.h" create mode 100644 "8\354\243\274\354\260\250 \354\213\244\354\212\265/ex8_1.c" diff --git "a/8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.c" "b/8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.c" new file mode 100644 index 0000000..4f12d38 --- /dev/null +++ "b/8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.c" @@ -0,0 +1,37 @@ +#include +#include +#include "adjMatrix.h" + +void createGraph(graphType* g) { + int i, j; + g->n = 0; + for (i = 0; i < MAX_VERTEX; i++) { + for (j = 0; j < MAX_VERTEX; j++) + g->adjMatrix[i][j] = 0; + } +} + +void insertVertex(graphType* g, int v) { + if (((g->n) + 1) > MAX_VERTEX) { + printf("\n 그래프 정점의 개수를 초과하였습니다!"); + return; + } + g->n++; +} + +void insertEdge(graphType* g, int u, int v) { + if (u >= g->n || v >= g->n) { + printf("\n 그래프에 없는 정점입니다!"); + return; + } + g->adjMatrix[u][v] = 1; +} + +void print_adjMatrix(graphType* g) { + int i, j; + for (i = 0; i < (g->n); i++) { + printf("\n\t\t"); + for (j = 0; j < (g->n); j++) + printf("%2d", g->adjMatrix[i][j]); + } +} \ No newline at end of file diff --git "a/8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.h" "b/8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.h" new file mode 100644 index 0000000..a88a41b --- /dev/null +++ "b/8\354\243\274\354\260\250 \354\213\244\354\212\265/adjMatrix.h" @@ -0,0 +1,13 @@ +#pragma once +#define MAX_VERTEX 30 + + +typedef struct graphType { + int n; + int adjMatrix[MAX_VERTEX][MAX_VERTEX]; +} graphType; + +void createGraph(graphType* g); +void insertVertex(graphType* g, int v); +void insertEdge(graphType* g, int u, int v); +void print_adjMatrix(graphType* g); \ No newline at end of file diff --git "a/8\354\243\274\354\260\250 \354\213\244\354\212\265/ex8_1.c" "b/8\354\243\274\354\260\250 \354\213\244\354\212\265/ex8_1.c" new file mode 100644 index 0000000..3d3c57c --- /dev/null +++ "b/8\354\243\274\354\260\250 \354\213\244\354\212\265/ex8_1.c" @@ -0,0 +1,66 @@ +#include +#include "adjMatrix.h" + +int main(void) { + int i; + graphType* G1 = (graphType*)malloc(sizeof(graphType)); + graphType* G2 = (graphType*)malloc(sizeof(graphType)); + graphType* G3 = (graphType*)malloc(sizeof(graphType)); + graphType* G4 = (graphType*)malloc(sizeof(graphType)); + + + createGraph(G1); + for (i = 0; i < 4; i++) + insertVertex(G1, i); + insertEdge(G1, 0, 3); + insertEdge(G1, 0, 1); + insertEdge(G1, 1, 3); + insertEdge(G1, 1, 2); + insertEdge(G1, 1, 0); + insertEdge(G1, 2, 3); + insertEdge(G1, 2, 1); + insertEdge(G1, 3, 2); + insertEdge(G1, 3, 1); + insertEdge(G1, 3, 0); + + createGraph(G2); + for (i = 0; i < 3; i++) + insertVertex(G2, i); + insertEdge(G2, 0, 2); + insertEdge(G2, 0, 1); + insertEdge(G2, 1, 2); + insertEdge(G2, 1, 0); + insertEdge(G2, 2, 1); + insertEdge(G2, 2, 0); + + createGraph(G3); + for (i = 0; i < 4; i++) + insertVertex(G3, i); + insertEdge(G3, 0, 3); + insertEdge(G3, 0, 1); + insertEdge(G3, 1, 3); + insertEdge(G3, 1, 2); + insertEdge(G3, 2, 3); + + createGraph(G4); + for (i = 0; i < 3; i++) + insertVertex(G4, i); + insertEdge(G4, 0, 2); + insertEdge(G4, 0, 1); + insertEdge(G4, 1, 2); + insertEdge(G4, 1, 0); + + printf("\n G1의 인접 행렬"); + print_adjMatrix(G1); + + printf("\n\n G2의 인접 행렬"); + print_adjMatrix(G2); + + printf("\n\n G3의 인접 행률"); + print_adjMatrix(G3); + + printf("\n\n G4의 인접 행렬"); + print_adjMatrix(G4); + + getchar(); return 0; +} \ No newline at end of file