C로 자료구조/알고리즘 공부하려고 하는데요

waltherppk의 이미지

책은 오라일리의 "Algorithm with C" 번역판을 택했는데요
자료구조를 어떻게 구현한다는 것은 대충 알 것도 같은데
어떻게 사용하는 것인지는 그림이 안그려지네요.
좀더 예제가 많은 책이나 사이트 없을까요 ?

Java만 갖고 흔들어대다가, C도 알아야할 것 같아서 시작했는데요
Java에서는 컬렉션 객체를 생성해서 집어넣으면 되었는데
C에서는 그런게 아니니까 좀 혼란스럽습니다.

자료구조 헤더파일을 여러군데서 include하면 각각 따로 관리 되나요 ?
그리고
하나의 파일에서 여러개의 자료구조를 생성하는게 가능한가요?
객체지향에서는 그냥 다른이름으로 객체를 생성하면 되지만
여기서는 전혀 그림이 안그려지네요

Java에서는 여러개의 파일을 만든다음에
각 파일을 객체로 생성해서 쓰게되니까 머릿속으로 포장하는게 되는데
C은 그게 잘 안되요.

그리고 이렇게 Java를 바탕으로 다른 언어를 비교해가면서 공부하는 것이
적절한 접근법인지도 궁금합니다.

그리고 C에서는 Java의 컬렉션api 같은거 없나요 ?
물론 무료로 쓸 수 있는 걸로요.

refill의 이미지

이 책 추천입니다. ^^

뭐.. 저도 알고리즘 공부할때 봤었죠

조금 오래된 책이긴하지만..

( 명서-_-a는 오래가는법이죠 ㅎㅎ )

바람과 같이

cedar의 이미지

waltherppk wrote:

그리고 이렇게 Java를 바탕으로 다른 언어를 비교해가면서 공부하는 것이
적절한 접근법인지도 궁금합니다.

자바에 익숙하신 사용자시라면 C보다는
객체지향 언어인 C++을 하시는 게 좋을텐데요.

waltherppk wrote:

그리고 C에서는 Java의 컬렉션api 같은거 없나요 ?
물론 무료로 쓸 수 있는 걸로요.

C++ 표준 라이브러리에는 JDK의 컬렉션 API보다 훨씬 강력한 STL(Standard Template Library)이 포함되어 있습니다.

STL은 객체지향(OOP)과는 다른 패러다임인 제너릭 프로그래밍(generic programming)을 따르는 라이브러리로서, 동적 배열(vector, deque), 연결 리스트(list, slist), 이진 탐색 트리(set, map), 해쉬 테이블(hash_set, hash_map), 문자열(string, rope) 등의 컨테이너(container)와 스택, 큐, 우선순위 큐와 같은 컨테이너 어댑터(container adapter), 컨테이너에 적용하는 100가지가 넘는 각종 알고리듬, 컨테이너와 알고리듬을 연결하여 동작시키는 반복자(iterator) 등의 다양한 기능을 가지고 있습니다.

이러한 STL을 제대로 사용하려면 당연히 자료구조와 알고리듬에 대한 이해가 필요합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.