|
|
目 次
101:
Stackとは?
102: Stackオブジェクトの先頭に,引数に指定したオブジェクトを追加するには?
103:
Stackオブジェクトの先頭にあるオブジェクトを返し,そのオブジェクトをStackオブジェクト内から削除するには?
104: Stackオブジェクトの先頭にあるオブジェクトを返し,そのオブジェクトをStackオブジェクト内から 削除しないようにするには?
105: 引数に指定したオブジェクトが,Stackオブジェクト内に存在するかどうかを調べるには?
106:
107:
108:
109:
110:
101: Stackとは?(後入れ先出し型の配列)
|
|
Stack<(Of <(T>)>) は、配列として実装されます。
Stack<(Of <(T>)>) の容量は、Stack<(Of <(T>)>) が保持できる要素数になります。Stack<(Of <(T>)>)
に要素を追加すると、必要に応じて、内部の配列の再割り当てによって容量が自動的に増加します。容量を減らすには、TrimExcess を呼び出します。
Count がスタックの容量よりも小さい場合、Push は O(1) 操作になります。新しい要素を格納するために容量を増やす必要がある場合、Push は
O(n) 操作になります。ここで、n は Count です。Pop は O(1) 操作です。
Stack<(Of <(T>)>) は、nullNothingnullptrnull オブジェクト参照 (Visual Basic では Nothing)
を参照型に対して有効な値として受け取り、要素の重複を許可します。
102: Stackオブジェクトの先頭に,引数に指定したオブジェクトを追加するには?
|
private
void button_Stack_追加_Click(object
sender, EventArgs e) {
Stack<string>
_Stack = new
Stack<string>();
//オブジェクトを追加する
_Stack.Push("1.山田");
_Stack.Push("2.安部");
_Stack.Push("3.熊谷");
//内容の確認
Console.WriteLine("-------------------------------------------");
foreach (string
_s in _Stack) {
Console.WriteLine(_s);
}
}
-------------------------------------------
3.熊谷
2.安部
1.山田
103:
Stackオブジェクトの先頭にあるオブジェクトを返し,そのオブジェクトをStackオブジェクト内から削除するには?'
|
private
void button_Pop_Click(object
sender, EventArgs e) {
Stack<string>
_Stack = new
Stack<string>();
//オブジェクトを追加する
_Stack.Push("1.山田");
_Stack.Push("2.安部");
_Stack.Push("3.熊谷");
//内容の確認
Console.WriteLine("-------------------------------------------");
foreach (string
_s in _Stack) {
Console.WriteLine("Pop前:{0}",
_s);
}
string _st = _Stack.Pop();
Console.WriteLine("-------------------------------------------");
Console.WriteLine("Pop:{0}",
_st);
//内容の確認
Console.WriteLine("-------------------------------------------");
foreach (string
_s in _Stack) {
Console.WriteLine("Pop後:{0}",
_s);
}
}
-------------------------------------------
Pop前:3.熊谷
Pop前:2.安部
Pop前:1.山田
-------------------------------------------
Pop:3.熊谷
-------------------------------------------
Pop後:2.安部
Pop後:1.山田
104:
Stackオブジェクトの先頭にあるオブジェクトを返し,そのオブジェクトをStackオブジェクト内から削除しないようにするには?'
|
private void
button_Stack_Peek_Click(object sender,
EventArgs e) {
Stack<string>
_Stack = new
Stack<string>();
//オブジェクトを追加する
_Stack.Push("1.山田");
_Stack.Push("2.安部");
_Stack.Push("3.熊谷");
//内容の確認
Console.WriteLine("-------------------------------------------");
foreach (string
_s in _Stack) {
Console.WriteLine("Peek前:{0}",
_s);
}
string _st = _Stack.Peek();
Console.WriteLine("-------------------------------------------");
Console.WriteLine("Peek:{0}",
_st);
//内容の確認
Console.WriteLine("-------------------------------------------");
foreach (string
_s in _Stack) {
Console.WriteLine("Peek後:{0}",
_s);
}
}
-------------------------------------------
Peek前:3.熊谷
Peek前:2.安部
Peek前:1.山田
-------------------------------------------
Peek:3.熊谷
-------------------------------------------
Peek後:3.熊谷
Peek後:2.安部
Peek後:1.山田
105:
引数に指定したオブジェクトが,Stackオブジェクト内に存在するかどうかを調べるには?
|
private void
button3_Click(object sender,
EventArgs e) {
Stack<string>
_Stack = new
Stack<string>();
//オブジェクトを追加する
_Stack.Push("1.山田");
_Stack.Push("2.安部");
_Stack.Push("3.熊谷");
if (_Stack.Contains("2.安部"))
{
Console.WriteLine("Contains:{0}",
"「2.安部」は存在する");
}
}
Contains:「2.安部」は存在する
|
|
|
|
|
|
|
|
|
|
|
|
|