C로 자료구조를 공부하려고하는데요...
글쓴이: waltherppk / 작성시간: 수, 2003/06/25 - 2:08오후
Java 만 보다가 하려니 감이 안잡혀서요...
C 에서는 객체개념이 없잖아요...
링크리스트를 구현한다음에
링크리스트를 이용해서 스택, 큐를 구현하고
하나의 어플에서 스택과 큐를 동시에 사용하게되면요...
그럼 데이터가 꼬이나요 ?
그리고 하나의 어플에서 스택 두개를 사용할 방법도 없는 건가요...
Java 같은경우라면 각각마다 객체를 할당해주면
알아서 내부 데이터가 감춰지잖아요...
읽어주셔서 감사합니다.... (^^)(__) 꾸벅
Forums:


..
하나의 어플에서 스택 두개를 사용할 방법은 당연히 있습니다.
리스트를 이용해서 큐나 스택을 짤때..
예를들어.. node 에 대한 head 같은것을 글로벌로 선언하고
operation 즉 push, pop 같은것들..할때..head 정보를 가지고 가면 됩니다..
다른 방법도 많겠지요...^^;;
참고로..아시겠지만...cpp 에서는 ...STL 을쓰시면..편합니다..
Think..
C에서도 객체 구현이 가능합니다.Linked-List나 Stack,
C에서도 객체 구현이 가능합니다.
Linked-List나 Stack, Queue등을 구현하실 때 Header, Tail, Current Node등의 정보와 기타 객체 유지와 관련된 기본 정보를 담을 구조체를 하나 만드시고 객체 생성함수를 통해 핸들러를 얻으시면 됩니다. 이후 윈도우 함수처럼 핸들러를 통해 객체를 다루듯이 쓰시구요.
간단한 예를 들자면...
#include <stdio.h> #include <stdlib.h> struct { int nID; char acArrayTmp[32]; } TYPE_TEST_STRC, *PTYPE_TEST_STRC; void *object_create(int nID) { PTYPE_TEST_STRC psHandle; psHandle = (PTYPE_TEST_STRC)calloc(sizeof(TYPE_TEST_STRC), 1); psHandle->nID = nID; sprintf(psHandle->acArrayTmp, "%d", nID); return psHandle; } void object_print(void *pvHandle) { PTYPE_TEST_STRC psHandle; psHandle = (PTYPE_TEST_STRC)pvHandle; fpritnf(stderr, "ID: [%d]\n", psHandle->nID); } void object_destroy(void *pvHandle) { free(pvHandle); } int main(int argc, char **argv) { void *pvHandle; pvHandle = object_create(int nID); object_print(pvHandle); object_destroy(pvHandle); }s(˘∼˘*)z,·´″"`°³о$ √(´∀`√)... (˘ヘ˘ㆀ)a
아직은 잘은 모르겠지만 고맙습니다...열심히 해야겠다는 의지가 솟
아직은 잘은 모르겠지만 고맙습니다...
열심히 해야겠다는 의지가 솟는군요...
(^^) (__) 꾸벅
댓글 달기