《C 알고리즘》 독서노트(5): 단방향 체인표 역순

3120 단어
P71,3-10
아주 간단한 프로그램입니다. debug가 한참 동안 발생했습니다.가장 중요한 것은 사고의 방향이 분명하다는 것이다.
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;

typedef struct node *link;
struct node 
{
    int item;
    link next;
};
int n;

void visit(link p)
{
    printf("%d ", p->item);
}

void traverse(link head)
{
    link p = head;
    while(p != NULL)
    {
        printf("%d ", p->item);
        p = p->next;
    }
    printf("
"
); } link reverse(link head) { link p = head, next, prev = NULL; while(p != NULL) { next = p->next; p->next = prev; prev = p; p = next; } return prev; } int main() { freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); scanf("%d", &n); link p, head; head = p = (link)malloc(sizeof(node)); p->item = 1, p->next = p; for(int i = 2; i <= n; ++ i) { p = (p->next = (link)malloc(sizeof(node))); p->item = i, p->next = NULL; } traverse(head); link tail = reverse(head); traverse(tail); return 0; }

좋은 웹페이지 즐겨찾기