게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
스택을 이용하여 함수를 만들어야 하는데 질문드려요!
게시물ID : programmer_16466짧은주소 복사하기
작성자 : 민트향쿠키
추천 : 0
조회수 : 378회
댓글수 : 5개
등록시간 : 2016/04/01 16:42:02
옵션
  • 본인삭제금지

싱글 링크드리스트 스택과 재귀함수를 이용하여 제곱을 구하는 프로그램을 공부하고 있습니다 ! 

코딩을 하다가 아이디어가 막혀서 질문드려요 ㅠㅠ

제가 여쭤보고 싶은건, 제곱을 구하는 함수의 알고리즘을 어떻게 구상해야 하는지인데요,

*일반적으로 제곱을 재귀함수를 이용했을 때 코드는

int power( int a, int b)
{
if ( b == 1)
return a;
else 
return power(a*2 , b-1); 
}

이런식이라고 합니다. 이걸 링크드리스트에 적용시키려고 하니 혼란스럽습니다 ㅠㅠ


typedef struct Node {
int data;
struct Node *link;
}Node;

typedef struct{
Node *top;
}LinkedStack;

노드와 스택을 구성하는 구조체는 대략 이런 모양입니다. 

//제곱을 구하는 함수 a의 b제곱을 구하는 함수라고 가정했을 때, 저는 인자로 링크드리스트와 a, b (a의 b제곱)을 주었습니다.

int pow ( 링크드리스트,int a, int b)
{
if ( ){ // 함수 호출 종료 포인트
top에 있는 데이터를 peek
}
else { // 재귀 호출 포인트
push를 해주며 스택에 데이터를 쌓음. pow 를 다시 호출 
}
}

이런 식으로 해야할 것 같은데 알고리즘 구체화 하려고하니 어렵더라고요 ㅠㅠ 
어떤 식으로 생각해야 할 지 조언 부탁드립니다 ㅠ_ㅠ 혹시 참고할만한 링크 알고계신 분들도 답변 부탁드립니다 ㅠ_ㅠ 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호