チェーンスタックの初期化インスタックアウトスタック印刷スタックの要素などの基礎内容
20966 ワード
XCode C++,CLion , , XCode
:XCode Version 8.3.3
1 #include
2 using namespace std;
3
4 #define maxSize 1000
5 #define WWStr(str) #str
6 #define WWLine "-------------"
7
8
9 /**
10
11 */
12 typedef struct LinkStackNode{
13 LinkStackNode *next;
14 int data;
15 }LinkStackNode;
16
17 /* */
18 void linkStackOperation();
19 /* */
20 void initLinkStack(LinkStackNode *&linkStack);
21 /* */
22 int isEmptyLinkStack(LinkStackNode *linkStack);
23 /* */
24 int pushLinkStack(LinkStackNode *linkStack,int x);
25 /* */
26 int popLinkStack(LinkStackNode *linkStack,int &x);
27
28 /* */
29 void printLinkStack(LinkStackNode *linkStack);
30
31 /* */
32 void notice();
33
34 int main(int argc, const char * argv[]) {
35
36 //
37 linkStackOperation();
38
39 return 0;
40 }
41
42
43 #pragma mark -
44 void linkStackOperation(){
45
46 cout<" "<endl;
47 LinkStackNode *linkStack;
48 initLinkStack(linkStack);
49
50 pushLinkStack(linkStack,1);
51 pushLinkStack(linkStack,2);
52 pushLinkStack(linkStack,3);
53
54 printLinkStack(linkStack);
55
56 pushLinkStack(linkStack,4);
57
58 isEmptyLinkStack(linkStack);
59 printLinkStack(linkStack);
60
61 int linkStackTopElement = 0;
62
63 popLinkStack(linkStack,linkStackTopElement);
64 printLinkStack(linkStack);
65 popLinkStack(linkStack,linkStackTopElement);
66 printLinkStack(linkStack);
67 popLinkStack(linkStack,linkStackTopElement);
68 printLinkStack(linkStack);
69
70 linkStackTopElement = 10;
71 pushLinkStack(linkStack,linkStackTopElement);
72 printLinkStack(linkStack);
73 popLinkStack(linkStack, linkStackTopElement);
74 popLinkStack(linkStack, linkStackTopElement);
75 popLinkStack(linkStack, linkStackTopElement);
76 printLinkStack(linkStack);
77 pushLinkStack(linkStack,20);
78 printLinkStack(linkStack);
79
80 }
81
82
83 #pragma mark -
84 void initLinkStack(LinkStackNode *&linkStack){
85
86 linkStack = (LinkStackNode *)malloc(sizeof(LinkStackNode));
87 linkStack->next = NULL;
88 }
89
90 #pragma mark -
91
92 int isEmptyLinkStack(LinkStackNode *linkStack){
93
94 if(linkStack->next == NULL){
95 cout<<" "<<endl;
96 return 1;
97 }else{
98 cout<<" "<<endl;
99 return 0;
100 }
101 }
102
103 #pragma mark -
104 void printLinkStack(LinkStackNode *linkStack){
105
106 cout<endl;
107 if(linkStack->next == NULL){
108 cout<<" ";
109 return;
110 }else{
111
112 LinkStackNode *p;
113 p = linkStack->next;
114 //
115 // p->next = NULL;
116 while(p != NULL){
117
118 cout<data<<endl;
119 p = p -> next;
120 /* 2 3 3 2
121 *
122 * */
123
124 }
125 }
126
127 }
128
129 #pragma mark -
130 int pushLinkStack(LinkStackNode *linkStack,int x){
131 //
132 LinkStackNode *p;
133 p = (LinkStackNode *)malloc(sizeof(LinkStackNode));
134
135 p->next = NULL;
136 p->data = x;
137
138 p->next = linkStack->next;
139 linkStack->next = p;
140 cout<<" "<" :"<endl;
141 return 1;
142
143 }
144
145 #pragma mark -
146 int popLinkStack(LinkStackNode *linkStack,int &x){
147
148 cout<" "<endl;
149 if(linkStack->next == NULL){
150 cout<<" linkStack: "<endl;
151 return 0;
152 }else{
153 LinkStackNode *p;
154 p = linkStack->next;
155 x = p->data;
156 linkStack->next = p->next;
157 free(p);
158 cout<<" linkStack: "<" "<endl;
159 return 1;
160 }
161
162 }
163
164
165 #pragma mark -
166 void notices(){
167
168 /* 2 3 3 2
169 *
170 * */
171 }
:
----------チェーンスタック関連操作----------
チェーンスタック0 x 100400590に入ったばかりのものは:1
チェーンスタック0 x 100400590に入ったばかりのものは:2
チェーンスタック0 x 100400590に入ったばかりのものは:3
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
3
2
1
チェーンスタック0 x 100400590に入ったばかりのものは:4
チェーンスタックは空ではありません
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
4
3
2
1
----------出桟操作-----------------
チェーンスタックlinkStack:アドレス0 x 100400590現在のスタック要素4
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
3
2
1
----------出桟操作-----------------
チェーンスタックlinkStack:アドレス0 x 100400590現在のスタック要素3
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
2
1
----------出桟操作-----------------
チェーンスタックlinkStack:アドレス0 x 100400590現在のスタック要素2
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
1
チェーンスタック0 x 100400590に入ったばかりのものは:10
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
10
1
----------出桟操作-----------------
チェーンスタックlinkStack:アドレス0 x 100400590現在のスタック要素10
----------出桟操作-----------------
チェーンスタックlinkStack:アドレス0 x 100400590現在のスタック要素1
----------出桟操作-----------------
スタックが空でスタックチェーンスタックlinkStack:アドレス0 x 100400590
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
スタックが空のチェーンスタック0 x 100400590に入ったばかりのものは:20
----------印刷チェーンスタックの情報:アドレス0 x 100400590----------
20
Program ended with exit code: 0