Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Espaรฑol
Portuguรชs
Franรงais
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Jungyerin
584 views
2012 Ds 03
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PDF
2012 Ds D2 03
by
chl132435
ย
PDF
2012 Ds D2 03 Pdf
by
kd19h
ย
PDF
3. linked list
by
Geunhyung Kim
ย
PDF
2012 Ds A1 03
by
seonhyung
ย
PDF
์๊ตฌ3๋ฒ
by
kangseungwoo
ย
PDF
4. stack
by
Geunhyung Kim
ย
PDF
์๋ฃ๊ตฌ์กฐ03
by
JeongJunYong
ย
PDF
Ch05
by
Hankyo
ย
2012 Ds D2 03
by
chl132435
ย
2012 Ds D2 03 Pdf
by
kd19h
ย
3. linked list
by
Geunhyung Kim
ย
2012 Ds A1 03
by
seonhyung
ย
์๊ตฌ3๋ฒ
by
kangseungwoo
ย
4. stack
by
Geunhyung Kim
ย
์๋ฃ๊ตฌ์กฐ03
by
JeongJunYong
ย
Ch05
by
Hankyo
ย
What's hot
PPT
Python3 brief summary
by
HoChul Shin
ย
PDF
5. queue
by
Geunhyung Kim
ย
PDF
์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ๊ตฌ์กฐ
by
์๊ธฐ ๊น
ย
PDF
[Swift] Data Structure - Dequeue
by
Bill Kim
ย
PDF
Ch07
by
Hankyo
ย
PPT
1.์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ(๊ฐ์์๋ฃ)
by
fmbvbfhs
ย
PDF
Python3 10์ฅ ๋ฌธ์์ด์ด์ผ๊ธฐ
by
Jihoon Kong
ย
PDF
Ch08
by
Hankyo
ย
PDF
์ ๊ทํํ์ Regular expression (regex)
by
Sunyoung Kim
ย
PPTX
Regex
by
Kangwook Lee
ย
PDF
1.3แแ กแผ แแ กแแ ฎ แแ ฉแแแ ณแซ แแ ณแ แ ฉแแ ตแแ ฅ(higher order procedure)แ แ ฉ แแ ญแแ ฃแจแแ กแแ ณแซ แแ กแผแแ ฅแธ
by
ํ์ค ๊น
ย
PPTX
R ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
by
Terry Cho
ย
PDF
์๋ฃ๊ตฌ์กฐ3๋ณด๊ณ ์
by
KimChangHoen
ย
PDF
Ch10
by
Hankyo
ย
PDF
6์ฅ ํํ์ ๋ฐ ๋ฌธ์ฅ
by
์ฌ์ ์ด
ย
PPTX
Tensorflow
by
chs71
ย
PDF
2012 Ds 06
by
Jungyerin
ย
PDF
Python Programming: Function
by
Chan Shik Lim
ย
PDF
Haskell study 13
by
Nam Hyeonuk
ย
PDF
Haskell study 10
by
Nam Hyeonuk
ย
Python3 brief summary
by
HoChul Shin
ย
5. queue
by
Geunhyung Kim
ย
์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ๊ตฌ์กฐ
by
์๊ธฐ ๊น
ย
[Swift] Data Structure - Dequeue
by
Bill Kim
ย
Ch07
by
Hankyo
ย
1.์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ(๊ฐ์์๋ฃ)
by
fmbvbfhs
ย
Python3 10์ฅ ๋ฌธ์์ด์ด์ผ๊ธฐ
by
Jihoon Kong
ย
Ch08
by
Hankyo
ย
์ ๊ทํํ์ Regular expression (regex)
by
Sunyoung Kim
ย
Regex
by
Kangwook Lee
ย
1.3แแ กแผ แแ กแแ ฎ แแ ฉแแแ ณแซ แแ ณแ แ ฉแแ ตแแ ฅ(higher order procedure)แ แ ฉ แแ ญแแ ฃแจแแ กแแ ณแซ แแ กแผแแ ฅแธ
by
ํ์ค ๊น
ย
R ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
by
Terry Cho
ย
์๋ฃ๊ตฌ์กฐ3๋ณด๊ณ ์
by
KimChangHoen
ย
Ch10
by
Hankyo
ย
6์ฅ ํํ์ ๋ฐ ๋ฌธ์ฅ
by
์ฌ์ ์ด
ย
Tensorflow
by
chs71
ย
2012 Ds 06
by
Jungyerin
ย
Python Programming: Function
by
Chan Shik Lim
ย
Haskell study 13
by
Nam Hyeonuk
ย
Haskell study 10
by
Nam Hyeonuk
ย
Viewers also liked
PDF
2012 Ds 04
by
Jungyerin
ย
PDF
2012 Ds 01
by
Jungyerin
ย
PDF
2012 Ds 05
by
Jungyerin
ย
PDF
2012 Dm 01
by
Jungyerin
ย
DOCX
์๋ฃ๊ตฌ์กฐ Project5
by
KoChungWook
ย
PPTX
๊ทธ๋ํ์ ์ต๋จ ๊ฒฝ๋ก ์ฐพ๊ธฐ
by
Jung-Ho Kim
ย
2012 Ds 04
by
Jungyerin
ย
2012 Ds 01
by
Jungyerin
ย
2012 Ds 05
by
Jungyerin
ย
2012 Dm 01
by
Jungyerin
ย
์๋ฃ๊ตฌ์กฐ Project5
by
KoChungWook
ย
๊ทธ๋ํ์ ์ต๋จ ๊ฒฝ๋ก ์ฐพ๊ธฐ
by
Jung-Ho Kim
ย
Similar to 2012 Ds 03
PDF
Project#3๋คํญ์์์ฐ์ฐ Hwp
by
Kimjeongmoo
ย
DOCX
์๋ฃ๊ตฌ์กฐ Project3
by
KoChungWook
ย
PDF
์๋ฃ๊ตฌ์กฐ 05 ์ต์ข ๋ณด๊ณ ์
by
pkok15
ย
PPTX
์ฐ๊ฒฐ๋ฆฌ์คํธ ๋ฐ์งํธ
by
jinho park
ย
PDF
์๋ฃ๊ตฌ์กฐ ๊ทธ๋ํ ๋ณด๊ณ ์
by
mil23
ย
PDF
์ฐ๊ฒฐ ๋ฆฌ์คํธ(๊ธฐ์ด)
by
Lee Geonhee
ย
PDF
์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ ๋ณด๊ณ ์
by
mil23
ย
PDF
์๋ฃ๊ตฌ์กฐ 04 ์ต์ข ๋ณด๊ณ ์
by
pkok15
ย
PPT
2.2.4 ์ํ๋ชฉ๋ก
by
suitzero
ย
PDF
์ด์ฐ์ํ C1 ํ๋ก์ ํธ 5
by
pkok15
ย
PDF
์ด์ฐ์ํ05
by
JeongJunYong
ย
PDF
2012 Ds A1 05
by
seonhyung
ย
PDF
์ด์ฐ์น5๋ฒ
by
kangseungwoo
ย
PDF
์ฐ๊ฒฐ ์๋ฃ๊ตฌ์กฐ
by
Choonghyun Yang
ย
PPTX
amugona study 1ํ
by
who7117
ย
PDF
์๊ตฌ4๋ฒ
by
kangseungwoo
ย
PDF
์๋ฃ๊ตฌ์กฐ04
by
herojoon1378
ย
PDF
2012 Dm 07
by
Jungyerin
ย
PDF
์ด์ฐ์น4๋ณด๊ณ ์
by
KimChangHoen
ย
PPT
Data Structure 3
by
yonsei
ย
Project#3๋คํญ์์์ฐ์ฐ Hwp
by
Kimjeongmoo
ย
์๋ฃ๊ตฌ์กฐ Project3
by
KoChungWook
ย
์๋ฃ๊ตฌ์กฐ 05 ์ต์ข ๋ณด๊ณ ์
by
pkok15
ย
์ฐ๊ฒฐ๋ฆฌ์คํธ ๋ฐ์งํธ
by
jinho park
ย
์๋ฃ๊ตฌ์กฐ ๊ทธ๋ํ ๋ณด๊ณ ์
by
mil23
ย
์ฐ๊ฒฐ ๋ฆฌ์คํธ(๊ธฐ์ด)
by
Lee Geonhee
ย
์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ ๋ณด๊ณ ์
by
mil23
ย
์๋ฃ๊ตฌ์กฐ 04 ์ต์ข ๋ณด๊ณ ์
by
pkok15
ย
2.2.4 ์ํ๋ชฉ๋ก
by
suitzero
ย
์ด์ฐ์ํ C1 ํ๋ก์ ํธ 5
by
pkok15
ย
์ด์ฐ์ํ05
by
JeongJunYong
ย
2012 Ds A1 05
by
seonhyung
ย
์ด์ฐ์น5๋ฒ
by
kangseungwoo
ย
์ฐ๊ฒฐ ์๋ฃ๊ตฌ์กฐ
by
Choonghyun Yang
ย
amugona study 1ํ
by
who7117
ย
์๊ตฌ4๋ฒ
by
kangseungwoo
ย
์๋ฃ๊ตฌ์กฐ04
by
herojoon1378
ย
2012 Dm 07
by
Jungyerin
ย
์ด์ฐ์น4๋ณด๊ณ ์
by
KimChangHoen
ย
Data Structure 3
by
yonsei
ย
2012 Ds 03
1.
project #3
๋คํญ์ ์ฐ์ฐ ์๋ฃ๊ตฌ์กฐ ์กฐ์ฅ: 20113311 ์ฅ๋๊ท ์กฐ์: 20113309 ์ดํ๊ตฌ 20113318 ์ ์๋ฆฐ 20113315 ์ ๋ฏผ์ 20083657 ์์์ง
2.
์์
โข์กฐ์๋ณ ์ ๋ฌด๋ถ๋ด โข์ผ์ ๊ณํ -ํ์๋ก โข๋ฌธ์ ํ์ -Linked List๋ผ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ๋คํญ์ ์ฐ์ฐ โข์๊ณ ๋ฆฌ์ฆ ๊ณํ โข์์ค๊ตฌํ โข๋ฌธ์ ์ ํ์ / ํด๊ฒฐ๋ฒ ํ ์ โข์ต์ข ์์ค โข์๊ฐ ๋ณต์ก๋/๊ณต๊ฐ ๋ณต์ก๋
3.
1) ์กฐ์๋ณ ์ ๋ฌด
๋ถ๋ด ์ด๋ฆ ์ญํ ์ฅ๋๊ท ์กฐ์ฅ, ๋ณด๊ณ ์ ์์ฑ, ์๋ฃ ์กฐ์ฌ ์ ์๋ฆฐ ์ฝ๋ฉ, ์๋ฃ ์กฐ์ฌ ์ ๋ฏผ์ ์๊ณ ๋ฆฌ์ฆ, ์๋ฃ์กฐ์ฌ ์์์ง ๋ณด๊ณ ์ ์์ฑ, ์๋ฃ ์กฐ์ฌ 2)์ผ์ ๊ณํ ๋ ์ง ๊ณํ ๋งํฌ๋ ๋ฆฌ์คํธ, ๋คํญ์ ์ฐ์ฐ์ ๋ํด ์กฐ์ฌ 04.12~04.17 ํด์ค๊ธฐ, ๋ณด๊ณ ์ ์์ฑ ๋งํฌ๋ ๋ฆฌ์คํธ ์์ค ๊ตฌํํ๋ ์๊ณ ๋ฆฌ์ฆ, ์ด 04.17~04.19 ๊ฒ์ ์ด๋ป๊ฒ ๋คํญ์ ์ฐ์ฐ์ ํ์ฉํ ๊ฒ์ธ์ง ์๊ฐ ํด์ค๊ธฐ, ๋ณด๊ณ ์ ์์ฑ 04.19~04.24 ์๊ณ ๋ฆฌ์ฆ์ ์์ค๋ก ๊ตฌํ, ์ต์ข ๋ณด๊ณ ์ ์์ฑ
4.
3)๋ฌธ์ ํ์ ๋งํฌ๋ ๋ฆฌ์คํธ(Linked List) ๋ฐฐ์ด
๊ตฌ์กฐ์ ๋จ์ ์ ๋ณด์ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ํด๋น ์ฃผ์์ ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ ์ฅ์ ์ด ์์ง๋ง, ๋จ์ ์ผ๋ก๋ ์ฝ์ , ์ญ์ ์ฐ์ฐ์ด ๋ณต์กํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์ ์ ์ธ ์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด ๊ณต๊ฐ 100๊ฐ๋ฅผ ์ ์ธํด ๋๊ณ 10๊ฐ๋ง ์ฐ๋ ๊ฒฝ์ฐ (๋ฉ๋ชจ๋ฆฌ ๋ญ๋น), 200๊ฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ(๊ณต๊ฐ ๋ถ์กฑ) ๋ผ๋ฉด ๋ฐฐ์ด ์ ์ธ ๋ถ๋ถ์ ๋ค์ ์์ ํด์ค์ผ ํ ๋ ๋ถํธํจ์ด ์๋ค. ์ด๋ฌํ ๋จ์ ์ ๋ณด์ํด ํ์ํ ๋ ๋ง๋ค ๊ณต๊ฐ์ ํ ๋นํ๊ณ ๋ ๊ทธ๊ฒ๋ค์ ์ฐ๊ฒฐํ์ฌ ๋ง์น ๋ฐฐ์ด์ฒ ๋ผ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ด ๋ฐ๋ก ๋งํฌ๋ ๋ฆฌ์คํธ์ด๋ค. ๋งํฌ๋ ๋ฆฌ์คํธ์ ์ฅ์ ์ผ๋ก๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ ํ์ ์์ด ํ์ํ ๋๋ง๋ค ๊ณต ๊ฐ์ ํ ๋น ๋ฐ์ ์ ์๋๋ก ์ค๊ณ๊ฐ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฌ๊ธฐ ๋๋ฌธ์ ํ์ํ ๋ณ์์ ํฌ๊ธฐ๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ ์ฐ์๋ ๋ฐฐ์ด๋ณด๋ค ํจ์จ์ ์ด๋ค. ํ์ง๋ง ๋งํฌ๋ ๋ฆฌ์คํธ์๋ ๋จ์ ์ ์๋ค. ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ ์ํด 4byte(32๋นํธ ์ด์์ฒด์ ๊ธฐ์ค)์ ๊ณต๊ฐ์ด ๋ญ๋น๋๋ค. ๋, ์ธ๋ฑ์ค๋ก ํด๋น ์ฃผ์์ ์ ๊ทผํ๋ ๊ฒ์ด ์๋ ๋ ธ๋์ ์ฒซ ๋ฒ์งธ๋ฅผ ๊ฐ๋ฆฌํค๋ Head๋ผ๋ ํฌ์ธํฐ ๋ณ์๋ฅผ ํตํด์ ์์ฐจ์ ์ผ ๋ก ์ ๊ทผํ๋ ๋จ์ ์ผ๋ก ์ธํด ๊ฒ์์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด์๋ค. (3๋ฒ์ง ์ฃผ์๊น์ง ๊ฐ๊ธฐ ์ํด์๋ 1, 2๋ฒ ์ฃผ์์ง๋ฅผ ๊ฑฐ์ณ์ผ ๊ฐ ์ ์๋ค.)
5.
๋ค์์ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ
๊ตฌํํ ์์ค์ด๋ค. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tagNode{ char Name[20]; struct tagNode* NextNode; }NODE; ๊ตฌ์กฐ์ฒด๋ก ์ด๋ฃจ์ด์ ธ ์๋ ๋งํฌ๋ ๋ฆฌ์คํธ. Name์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณ์๋ก ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ๋ฉฐ, tagNode*๋ ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํฌ ํฌ์ธํฐ ๋ณ์์ด๋ค. NODE* CreateNode(char name[]) { NODE* NewNode = (NODE*)malloc(sizeof(NODE)); strcpy(NewNode -> Name, name); NewNode -> NextNode = NULL; return NewNode; } NODE๋ฅผ ์์ฑํ๋ ํจ์์ด๋ค. ์ธ์๋ก๋ ํด๋น ๋ ธ๋์ ๋ค์ด๊ฐ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๊ฐ์ ๋ฐ๊ณ ์๋ค. NewNode๋ผ๋ ํฌ์ธํฐ๋ฅผ ์์ฑํ ๊ทธ ํด๋นํ๋ ์ฃผ์์ mallocํจ์๋ก ๊ณต๊ฐ์ ๋์ ํ ๋นํ ๊ณ ์๋ค. void ConnectNode(NODE** Head, NODE* Node) { if(NULL == (*Head))
6.
{
*Head = Node; } else { NODE* Current = *Head; while(Current -> nextNode != NULL) { Current = Current -> NextNode; } Current -> NextNode = Node; } } ์ธ์๋ก๋ ์ฒซ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ Head์ ์ฃผ์๊ฐ๊ณผ ์ฐ๊ฒฐํ ๋ ธ๋๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค. ์ฌ๊ธฐ์ ํค ๋๊ฐ ๊ฐ๋ฆฌํค๋ ๋ ธ๋๊ฐ ์๋(NULL)์๋ก์ด ๋ ธ๋๋ผ๋ฉด, main์ ์ ์ธํ Head๊ฐ ์์ฒด๋ฅผ ๋ฐ๊พธ๊ธฐ ์ํด ํฌ์ธํฐ Head์ ์ฃผ์๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด์ค ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๋ ธ๋์ ๋งจ ๋ง์ง๋ง์ ์ฝ์ ํ ๊ฒฝ์ฐ์ ์๋ ๋ ๊ฐ์ง๊ฐ ์๋ค. 1. Head๊ฐ NULL์ผ ๊ฒฝ์ฐ(ํ ๋น ๋ ธ๋) 2. Head๊ฐ NULL์ด ์๋ ๊ฒฝ์ฐ(ํ๋ ์ด์์ ์ฐ๊ฒฐ๋ ๋ ธ๋) 1๋ฒ์ ๊ฒฝ์ฐ๋ Head์ ๋ค์ ๋ ธ๋์ ์ ๋ ธ๋์ ์ฃผ์๊ฐ์ ๋ฃ์ผ๋ฉด ๋์ง๋ง, 2๋ฒ์ ๊ฒฝ์ฐ์ ๋ ๋ ธ๋๋ฅผ ์ฐพ์์(NULL์ด ์๋๊ณณ) ์ฐ๊ฒฐ ํด ์ค์ผ ํ๋ค. NODE* Current;๋ฅผ ์ ์ธํ๋ ์ด์ ๋ Head์ ๊ฐ์ ๋ฐ๊พธ์ง ์๊ณ ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ๋ ธ๋์ ์ ๊ทผํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค. void PrintNode(NODE* Head, int index) { NODE* Current = Head;
7.
while(Current != NULL
&& 0 < index) { index--; Current = Current -> NextNode; } printf(โ%snโ, Current -> Name); } ๋ ธ๋์ ๊ฐ์ ์ถ๋ ฅํ๋ ํจ์์ด๋ค. ์ธ์๋ก๋ Head์ ๋ช ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ถ๋ ฅํ ๊ฑด์ง ์ ํ๋ ๋ณ ์์ด๋ค. while์ ๊ฒฝ์ฐ Current != NULL์ NULL์ผ ๊ฒฝ์ฐ์ ๋ ธ๋์ ๋์ด๋ฏ๋ก ์ด ์ด์ ์ ๊ทผ์ ํ์ง์๊ธฐ ์ํด ์ด๋ค. int GetCountNode(NODE * Head) { NODE* Current = Head; int count = 0; while(Current != NULL) { count++; Current = Current -> NextNode; } return count; } PrintNode๋ก ์ ์ฒด ์ถ๋ ฅ์ ํ๊ธฐ๋ฅผ ์ํ ๊ฒฝ์ฐ ๋ ธ๋์ ๊ฐ์๋ฅผ ์์๋ด๋๋ฐ ์ฌ์ฉ๋๋ ํจ์์ด๋ค. void InsertNode(NODE** Head, NODE* ConnectNode, int index) { if(0 == index)
8.
{
ConnectNode -> NextNode = (*Head); *Head = ConnectNode; } else { NODE* Current = *Head; while(0 < (--index)) { Current = Current -> NextNode; } ConnectNode -> NextNode = Current -> NextNode; Current -> NextNode = ConnectNode; } } ๋ ธ๋์ ๋ ธ๋ ์ฌ์ด์ ์๋ก์ด ๋ ธ๋๋ฅผ ์ฝ์ ํ๋ ํจ์์ด๋ค. 1. 4๋ฒ์ง ์ฃผ์์ ๋ค์ ๋ ธ๋ ์ฃผ์๊ฐ์ 2๋ฒ์ง ๋ ธ๋์ ์ฃผ์๊ฐ์ผ๋ก ๋ณ๊ฒฝ 2. 2๋ฒ์ง ๋ ธ๋์ ์ฃผ์๊ฐ์ 4๋ฒ์ง ๋ ธ๋์ ์ฃผ์๋ก ๋ณ๊ฒฝ void DestroyNode(NODE** Head, int index) { NODE* Remove = *Head; while(Remove != NULL && 0<(--index))
9.
{
Remove = Remove -> NextNode; } if(*Head == Remove) { *Head = Remove -> NextNode; } else { NODE* Current = *Head; while(Current != NULL && Current -> NextNode != Remove) { Current = Current -> NextNode; } if(Current != NULL) { Current -> NextNode = Remove -> NextNode; } } free(Remove); } ์ญ์ ์ฐ์ฐ์ ์ฝ์ ์ฐ์ฐ๋ณด๋ค ํจ์ฌ ๊ฐ๋จํ๋ค. ์ญ์ ํ ๋ ธ๋์ ์๋ ธ๋(1๋ฒ๋ ธ๋)์ ๋ค์ ์ฃผ์๋ฅผ ์ญ์ ํ ๋ ธ๋์ ๋ค์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก๋ง ํ๋ฉด ๋๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ํ ๋นํ๋ ๊ณต๊ฐ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํด์ ํด ์ค์ผํ๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ํจ ์ free๊ฐ ์๋ค. ์ธ์๋ ํด์ ํ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ๋ง ๋๊ธฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ญ์ ํ ๋ ธ๋์ ์ฃผ์ ๋ฅผ ๋ณด๋ด์ฃผ๋ฉด ๋๋ค. ๊ตฌ์กฐ์ฒด ๋ค๋ฅธ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๋ฌถ์ด์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ๊ฒฐํฉ๋ฒ์ ๋งํ๋ค. ๊ฐ๊ธฐ ๋ค๋ฅธ ํ์ด๋ ๋ค๋ฅธ ์๋ฏธ์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๋ฐฐ์ด๋ค์ ํ ๋ฒ์ ๋ํ๋ผ ์ ์๋๋ก ๊ตฌํ ํ ์๋ฃ๊ตฌ ์กฐํ์ด๋ค.
10.
struct ๊ตฌ์กฐ์ฒด ์ด๋ฆ
{ ์๋ฃํ ์๋ฃ์ด๋ฆ; ์๋ฃํ ์๋ฃ์ด๋ฆ; } ๊ณผ ๊ฐ์ด ์ ์ ํ ์ ์์ผ๋ฉฐ, ์ ์๋ฅผ ํ ๋์๋ ๋ค์์ ์กฐ๊ฑด์ด ๋ฐ๋ฅธ๋ค. โ ๊ตฌ์กฐ์ฒด ์ ์์์ ๋ฐ๋ก ์ด๊ธฐํ ํ ์ ์๋ค. โก๊ตฌ์กฐ์ฒด ์ ์ธ์ ๋ฌธ์์ ํด๋น๋๊ธฐ ๋๋ฌธ์ ๋๋ง์น ํ ;์ ๋ถ์ฌ ์ฃผ์ด์ผ ํ๋ค. ๊ตฌ์กฐ์ฒด๋ฅผ ํตํด์ ์ฌ๋ฌ๊ฐ์ ํ ์ดํ ๊ฐ์ ๋ฌถ์ ์ ์๊ฒ ํ์ฌ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ๊ตฌํ ํ ์ ์๋๋ก ํ๋ค. 4)์๊ณ ๋ฆฌ์ฆ ๊ณํ โ ๋คํญ์์ ํํ DATA LINK 1) ๊ฐ ๋ ธ๋์ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์์ DATA๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด๊ณผ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๋ LINK ๊ฐ ์กด์ฌํ๋ค. ์ด ๋ DATA๋ ์ฒ๋ฆฌํ๋ ๊ฐ์ ์ ์ฅํ๋ ๋ฐฐ์ด์ด๊ณ , LINK๋ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค ๋ ํฌ์ธํฐ์ ์ญํ ์ ํ๋ค. ๋คํญ์์ ๊ตฌํํ๊ธฐ ์ํด์๋, 2) ๋คํญ์์ ๊ฐ ํญ์ ๊ณ์๋ถ๋ถ ์ง์๋ถ๋ถ์ผ๋ก ๋๋์ด ์๊ฐํ๋ค. DATA์ ๋ฐฐ์ด๋ ๊ณ์์ ์ง์๋ฅผ ์ ์ฅํ ์ ์๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธํ๋ค. ๊ณ์๋ถ๋ถ ์ง์๋ถ๋ถ
11.
์ฆ, DATA-
DATA-์ง LINK ๊ณ์๋ถ๋ถ ์๋ถ๋ถ ๊ณผ ๊ฐ์ด ํ ๋ ธ๋๊ฐ ๋ง๋ค์ด์ง๊ฒ ๋๋ค. 3) ์ด๋ฌํ ๋ ธ๋๋ฅผ ๋คํญ์์์ ํญ์ ๊ฐ์๋งํผ LINK๋ฅผ ์ด์ฉํด ๋ค์ ํญ์ ๊ฐ๋ฆฌํค๊ณ ๋ค์ ํญ์ ๊ฐ๋ฆฌํค๋ ์์ผ๋ก ํ ๊ฐ์ ๋คํญ์์ ๋ํด ํ ๊ฐ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค. โก ๋คํญ์์ ๋ง์ ๊ณผ ๋บ์ 1) ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์์ฑ ๋ ๋คํญ์1๊ณผ ๋คํญ์2์ ๋ํด์ ์ง์๋ถ๋ถ์ด ๊ฐ์ ๋ ธ๋๋ผ๋ฆฌ ์ฐ์ฐ์ ํด ์ค ๋ค. 2) ๋คํญ์ 3์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ์์ฑํ๊ฒ ๋๋๋ฐ, ์ด ๋ 1๊ณผ2๋ก ์ฐ์ฐ๋ ๊ฐ์ 3์ ์ ์ฅํ๋ค. 3) 1๊ณผ 2์ ๊ฐ์ ์ง์๋ถ๋ถ์ด ์์ด์ ์ฐ์ฐ๋์ง ์์ ๋๋จธ์ง ํญ๋ค์ ๊ทธ๋๋ก ๋ณต์ฌ๋์ด์ 3์ ์ ์ฅ๋๋ค. 4) ๋คํญ์์ ์ฐ์ฐ์ ๋ง์ณ์ 3์ ์ ์ฅ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ถ๋ ฅํ๋ค. โข ๋คํญ์์ ๊ณฑ์ 1) ๋คํญ์ 1์ ๋ ธ๋์ ๋คํญ์2์ ๋ ธ๋์ ๊ณ์๋ถ๋ถ์ ๊ณฑ์ ์ฐ์ฐ์ ํ๊ณ ์ง์๋ถ๋ถ์ ๋ํ๊ธฐ ์ฐ ์ฐ ์ ํด์ค๋ค. 2) ๋คํญ์1์ ๋ ธ๋์ ๋คํญ์2์ ๋ ธ๋๋ ์๋ก์ ๋ ธ๋๊ฐ ๋ชจ๋ ์์์์ ํ ๋ฒ ์ฉ์ ์ด๋ฃจ์ด์ผ ๋ ๋ค. 3) ์์์์ ์ด๋ฃจ์ด์ ์ฐ์ฐ ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์๋ก์ด ์ฐ๊ฒฐ๋ฆฌ์คํธ 3์ ์ ์ฅ๋๋ค. 4) ๊ฐ ๋ ธ๋๋ค์ ๋ชจ๋ ๋ํ ์ ์๋๋ก, ์์์ ์์ฑํ์๋ ADD์ฐ์ฐ์ ํ ๋ฒ ๋ ํด์ค๋ค. 5) ์ ๋ฆฌ ๋์ด 3์ ์ ์ฅ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ถ๋ ฅํ๋ค. โฃ ๋คํญ์์ ๋๋์ 1) ๋๋๋ ๋คํญ์์ ์ต๊ณ ์ฐจํญ์ด ๋๋ ์ง๋ ์ต๊ณ ์ฐจํญ๊ณผ ๊ฐ์์ง๊ฒ ํ ์ ์๋ X๊ฐ ๊ณ์ํด์ ๋ชซ ์ด ๋ ์ ์๋ค. 2) ๊ณ์์ ๊ณ์ฐ์, p(x)์ ๊ณ์ = s(x)๊ณ์*q(x) ๊ณ์, q(x)๊ณ์๋ p/s๊ณผ ๊ฐ์ด ๋๋ค. 3) ๊ณ์ ์ต๊ณ ์ฐจํญ์ ๋ง์ถฐ์ X๊ฐ ๊ณฑํด์ ธ์ ๋๋ ์ง๋ ๋คํญ์์ ๊ทธ ๊ฒฐ๊ณผ ๊ฐ์ ๋บ์ ์ ํ๊ณ ์ ๋ค. ์ด ๋ ๊ณฑํด์ง๋ ์ฐจ์๊ฐ 0์ด๊ฑฐ๋ ๋๋จธ์ง๊ฐ 0์ด๋ฉด ์คํฑํ๋ค. ๋ง์ฝ ๋บ์ ์ ํ๋ค๊ฐ ๋คํญ์์ด ๋จ๊ฒ ๋๋ฉด ๊ทธ ๋จ์ ๋คํญ์์ ๋๋จธ์ง๊ฐ ๋๋ค.
12.
5)์์ค ๊ตฌํ โ ์์ค ๋ถ์ #include
<stdio.h> #include <stdlib.h> typedef struct polynomial { int degree; //์ฐจ์ double coef;//๊ณ์ struct polynomial *link; }polynomial; typedef struct node { int l; polynomial *s; polynomial *f;//๋ค์์ ๊ฐ๋ฆฌํฌ link }node; void st(node *point) //์ด๊ธฐํ { point->l=0; point->s=point->f=NULL; } void insert_node(node *point,double coef,int degree) { //char *temp;
13.
polynomial *temp=(polynomial *)malloc(sizeof(node));//์ฐ๊ธธ๋ฆฌ์คํธ์
๋ฉ๋ชจ๋ฆฌํ ๋น์ temp์ ํฌ์ธํฐ ์ฎ๊ธฐ๋ ์ ๋์ ๋ฐ๋ผ ํ ๋นํด์ค if(temp==NULL) { exit(1); } temp->coef=coef;//ํฌ์ธํฐ๋ก polynomialํ์ ์ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ถ๋ฌ์์ ๊ณ์๋ฅผ ์ฝ์ temp->degree=degree;//์ฐจ์๋ฅผ ์ฝ์ if(point->f==NULL)//๋ง์ฝ ์ฐ๊ฒฐ๋ฆฌ์คํธ์์ ๋น๊ฐ์ ๋ง๋๋ฉด ๋ค์ temp๋ก ํฌ์ธํฐ๋ฅผ ๋ ๋ ค์ค { point->s=point->f=temp; } else//๊ทธ ์ด์ธ์ ๊ฒฝ์ฐ point๋ { point->f->link=temp; point->f=temp; } point->l++;//ํฌ์ธํฐ๋ฅผ ๊ธธ์ด๋งํผ ์ฆ๊ฐํด์ค์ ๋ง์ง๋ง ์๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ์ค์ } /*void polynomial_add(node point1, node point2, node point3) { polynomial *a=point1-> */ //๋คํญ์ ์ถ๋ ฅ void print(node *point) { polynomial *p=point->s;//pํฌ์ธํฐ๋ฅผ point๋ฅผ ํตํด ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฒ์ ์๋ฆฌ์ธs์ ์ฃผ์๊ฐ์ ๋ฐ์์ด for(;p;p=p->link) { if(p->coef==0 || p->degree==0)//๋ง์ฝ ๊ณ์๋ ์ฐจ์๊ฐ ๋ชจ๋ 0์ด๋ฉด ์ถ๋ ฅํ ์ง ์์ { printf(""); } else if(p->degree==1)//์ฐจ์๊ฐ 1์ด๋ฉด ๊ณ์๋ง ์ถ๋ ฅ { printf("%d",p->coef);
14.
}
else { printf("%dx^%d",p->coef,p->degree); //๊ณ์๊ฐ๋ ์ง์๊ฐ 0์ด ์๋ ๋ฉด ๊ณ์x^์ง์ ํํ๋ก ํ์ } if(p->link==NULL)//P๊ฐ ๊ฐ๋ฆฌํจ ๊ณณ์ด ๋น๊ฐ์ด๋ฉด ์๋ฌด๊ฒ๋ ์ถ๋ ฅํ์ง ์์. { printf(""); } else//๊ฐ์ด ์๋๊ฒฝ์ฐ ๊ฐ์ด๋ฐ์ +๋ฅผ ์ถ๋ ฅ { printf(" + "); } } printf("n"); } void poly_add(node *plist1, node *plist2, node *plist3) { polynomial *a=plist1->s;//๋คํญ์ 1์ ํ์ํ ํฌ์ธํฐ polynomial *b=plist2->s;//๋คํญ์ 2๋ฅผ ํ์ํ ํฌ์ธํฐ int sum;//๊ณ์๋ฅผ ๋ด์ ๋ณ์ while(a&&b) { if(a->coef == b->coef)//์ง์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ { sum=a->coef+b->coef;//a,b ๋ฐ์ ๊ณ์๊ณผ ์ฐจ์๋ฅผ coef๊ตฌ์กฐ์ฒด์ ์ ์ฅ if(sum!=0) { insert_node(plist3,sum,a->degree);//์ฝ์ ํจ์๋ฅผ ๋ถ๋ฌ์ด, ๋คํญ์1์ ๊ณ์๋ฅผ ์ ์ฅํ๋ polynomial๊ตฌ์กฐ์ฒด. ์์์ ๊ณ์ฐ ํด์ค sum์ ๊ณ์๋ก ์ ์ฅ.a๋ ๋ค ํญ์1์ ์ฐจ์๋ฅผ ๊ฐ๋ฆฌํด. } b=b->link;//๋๋ค ์ฐ๊ฒฐ๋ฆฌ์คํธ์ link๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํจ. a=a->link; } else if(a->degree >b->degree) {
15.
insert_node(plist3,a->coef,a->degree);//์ฐจ์๋ฅผ
๊ฐ๋ฆฌํค๊ณ ์์๋, ๋คํญ์3๋ฒ์งธ=1+2์ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅ. a=a->link; } else { insert_node(plist3,b->coef,b->degree); b=b->link; } for(;a!=NULL;a=a->link) { insert_node(plist3,a->coef,a->degree); } for(;b!=NULL;b=b->link) { insert_node(plist3,b->coef,b->degree); } } } void main() { node list1, list2, list3; //๋คํญ์ ์ ๋ ฅ๋ฐ์ ๋ณ์ ์ ์ธ double a; int b; //ํญ์ ๊ณ์์ ์ง์๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ ์ํ ๋ณ์ st(&list1);//st ํจ์ ํธ์ถ๋ก ๊ณต๋ฐฑ ๋ฆฌ์คํธ st(&list2); st(&list3); //๋คํญ์1์ ์ ๋ ฅ๋ฐ๋ ๋ถ๋ถ printf("๋คํญ์1์ ํญ(๊ณ์,์ง์)์ ์ ๋ ฅํ์ธ์. (0 0 ์ด๋ฉด ์ ๋ ฅ์ข ๋ฃ)n"); while (1) { scanf("%f %d",&a,&b); if (a==0.0 && b==0) {
16.
break;
} insert_node(&list1, a, b); } printf("๋คํญ์1 : "); print(&list1); //๋คํญ์1 ์ถ๋ ฅ printf("n"); //๋คํญ์2์ ์ ๋ ฅ๋ฐ๋ ๋ถ๋ถ printf("๋คํญ์2์ ํญ(๊ณ์,์ง์)์ ์ ๋ ฅํ์ธ์. (0 0 ์ด๋ฉด ์ ๋ ฅ์ข ๋ฃ)n"); while (1) { scanf("%f %d",&a,&b); if (a==0.0 && b==0) { break; } insert_node(&list2, a, b); } printf("๋คํญ์2 : "); print(&list2); //๋คํญ์2 ์ถ๋ ฅ printf("n"); // ๋คํญ์3 = ๋คํญ์1 + ๋คํญ์2 poly_add(&list1, &list2, &list3); printf("๊ฒฐ๊ณผ : "); print(&list3); //๋คํญ์3 ์ถ๋ ฅ }
17.
7)์ต์ข ์์ค #include <stdio.h> #include <stdlib.h> //
์ฐ๊ฒฐ๋ฆฌ์คํธ ๋ ธ๋์ ๊ตฌ์กฐ typedef struct listnode { double coef; int expon; struct listnode *link; } listnode; // ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํค๋ typedef struct listheader { int length; listnode *head; listnode *tail; } listheader; //์ด๊ธฐํ ํจ์ int reset(listheader *plist) { plist->length=0; plist->head=plist->tail=NULL; return 0; } //plist๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ํค๋๋ฅผ ๊ฐ๋ฅดํค๋ ํฌ์ธํฐ //expon๋ ์ง์ coef๋ ๊ณ์ int poly_make(listheader *plist,double coef,int expon) { listnode *n=(listnode*)malloc(sizeof(listnode)); n->coef=coef; n->expon=expon;
18.
n->link=NULL;
if(plist->tail==NULL) { plist->head=plist->tail=n; } else { plist->tail->link=n; plist->tail=n; } plist->length++; return 0; } //list3 = list1 + list2 int poly_add(listheader *plist1,listheader *plist2, listheader *plist3) { double sum; listnode *a=plist1->head; listnode *b=plist2->head; while(a,b) { if(a->expon == b->expon) { sum=a->coef+b->coef; if(sum!=0) { poly_make(plist3, sum, a->expon); a=a->link; b=b->link; } } else if(a->expon > b->expon) { poly_make(plist3, a->coef, a->expon); a=a->link; } else { poly_make(plist3, b->coef, b->expon);
19.
b=b->link;
} } return 0; } //์ถ๋ ฅ ํ๊ธฐ ์ํ ํจ์ int poly_print(listheader *plist) { listnode *p = plist->head; for(1; p; p = p->link) { printf("%.1fX^%d", p->coef, p->expon); if(p->link!=NULL) { printf(" + "); } } printf("n"); return 0; } //๋ฉ๋ชจ๋ฆฌ ํด์ ํจ์ int poly_delete(listheader *plist) { listnode *n=plist->head; listnode *del; while(n->link!=NULL) { del=n; n=del->link; plist->head=n; free(del); } free(n); return 0; } //๋ฉ์ธ ํจ์ int main()
20.
{
listheader list1, list2, list3; //๋ฆฌ์คํธ ๋ณ์ ์ ์ธ // ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ด ์ด๊ธฐํ reset(&list1); reset(&list2); reset(&list3); // P(X)๋ฅผ ์์ฑ poly_make(&list1, -3.7, 3); poly_make(&list1, 2.5, 2); poly_make(&list1, 1, 1); // S(X)๋ฅผ ์์ฑ poly_make(&list2, 8.2, 3); poly_make(&list2, -3.1, 2); poly_make(&list2, 10.2, 1); // T(X)๋ฅผ ์์ฑ // T(X)=P(X)+S(X) poly_add(&list1, &list2, &list3); printf("P(X)์ ๋คํญ์ : "); poly_print(&list1); printf("S(X)์ ๋คํญ์ : "); poly_print(&list2); printf("T(X)์ ๋คํญ์ : "); poly_print(&list3); // ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ์ ๋ฆฌ์คํธ๋ฅผ ํด์ poly_delete(&list1); poly_delete(&list2); poly_delete(&list3); return 0; }
21.
โข์คํ ํ๋ฉด 8)์๊ฐ๋ณต์ก๋/๊ณต๊ฐ๋ณต์ก๋
Download