'>'에 해당되는 글 1건

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

typedef struct _node

{

                  LData data;

                  struct _node * next;

} Node;

 

typedef struct _linkedList

{

                  Node * head;

                  Node * cur;

                  Node * before;

                  int numOfData;

                  int (*comp)(LData d1, LData d2);

} LinkedList;


void SInsert(List * plist, LData data)

{

                  Node * newNode = (Node*)malloc(sizeof(Node));

                  Node * pred = plist->head;

                  newNode->data = data;

 

                  while(pred->next != NULL &&

                                   plist->comp(data, pred->next->data) != 0)

                  {

                                   pred = pred->next;

                  }

 

                  newNode->next = pred->next;

                  pred->next = newNode;

 

                  (plist->numOfData)++;

}


멤버 연산자(.)

구조체의 멤버를 참조하기 위해 사용하는 연산자

구조체 이름.멤버 이름


포인터 멤버 연산자(->)

구조체 포인터의 멤버를 참조하기 위해 사용하는 연산자

구조체 포인터 이름->멤버 이름


pred->next->data


어떻게 이런 표현이 가능한지 문법적으로 조금 더 알아보고자 위의 정의들을 찾아보았다.

정의를 정확히 알고나니 위 표현을 해석하는 것은 쉬웠다.


즉, 


pred는 Node 구조체 포인터이므로 pred->next는 다음 Node를 가리키고, 그 대상은 head의 next다.

head의 next가 가리키는 대상 또한 Node 구조체 포인터이므로 


한번 더 -> 연산자를 이용해서 그 멤버 내의 data를 참조하는 것은 가능하게 된다.





'language > 자료구조' 카테고리의 다른 글

AVL 트리와 균형 인수  (0) 2016.08.07
블로그 이미지

saylin

,