回答編集履歴

1

追記

2020/03/28 23:46

投稿

episteme
episteme

スコア16612

test CHANGED
@@ -21,3 +21,95 @@
21
21
  data_t getdata() で要素(の値)を返し、
22
22
 
23
23
  list *getnext() が次の数珠玉(へのポインタ)を返します。
24
+
25
+
26
+
27
+ [追記] list<char> をそれと等価な list_of_char に置き換えました。
28
+
29
+ これでわからんとしたら、templateがわからんわけじゃない。
30
+
31
+ ```C++
32
+
33
+ typedef char data_t;
34
+
35
+
36
+
37
+ class list_of_char {
38
+
39
+ data_t data;
40
+
41
+ list_of_char *next; // ・・・・・・(あ)
42
+
43
+ public:
44
+
45
+ list_of_char(data_t d);
46
+
47
+ void add(list_of_char *node) {node->next = this; next = 0; } // nodeの次にthisをつなぐ
48
+
49
+ list_of_char *getnext() { return next; } // ・・・・・(い)
50
+
51
+ data_t getdata() { return data; }
52
+
53
+ };
54
+
55
+
56
+
57
+ list_of_char::list_of_char(data_t d) {
58
+
59
+ data = d;
60
+
61
+ next = 0;
62
+
63
+ }
64
+
65
+
66
+
67
+ #include <iostream>
68
+
69
+ using namespace std;
70
+
71
+
72
+
73
+ int main() {
74
+
75
+ list_of_char start('a'); // ・・・・・・(う)
76
+
77
+ list_of_char *p, *last; // ・・・・・・(え)
78
+
79
+ int i;
80
+
81
+ // リストを作成する
82
+
83
+ last = &start;
84
+
85
+ for(i=1; i<26; i++) {
86
+
87
+ p = new list_of_char('a' + i);
88
+
89
+ p->add(last);
90
+
91
+ last = p;
92
+
93
+ }
94
+
95
+ // リストを追跡する
96
+
97
+ p = &start;
98
+
99
+
100
+
101
+ while(p) {
102
+
103
+ cout << p->getdata();
104
+
105
+ p = p->getnext(); // ・・・・・・(お)
106
+
107
+ }
108
+
109
+ cout << "\n";
110
+
111
+ return 0;
112
+
113
+ }
114
+
115
+ ```