/*★ List 連鎖(typedef & 関数) 前田 稔 ★*/ #include <stdio.h> // LST 構造体の定義 typedef struct _LST { struct _LST *pt; int v; } LST, *LPLST; LPLST top= NULL; //List の先頭ポインタ |
// LST を一件割り当てる LPLST add(LPLST lst, int n) { LPLST wk; wk= new LST; wk->v= n; wk->pt= lst; return wk; } |
// LST を再帰で印字する void disp(LPLST lst) { if (lst==NULL) return; printf("%3d",lst->v); disp(lst->pt); return; } |
// 再帰で領域を開放する void free(LPLST lst) { if (lst==NULL) return; free(lst->pt); printf("%3d開放",lst->v); delete lst; return; } |
//☆ MAIN void main() { int i; //List を連鎖 for(i=1; i<6; i++) top= add(top,i); //List をたどって印字 disp(top); //List を開放 free(top); } |