📄 pgm08_16.txt
字号:
//// This file contains the C# code from Program 8.16 of// "Data Structures and Algorithms// with Object-Oriented Design Patterns in C#"// by Bruno R. Preiss.//// Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved.//// http://www.brpreiss.com/books/opus6/programs/pgm08_16.txt//public class ChainedScatterTable : AbstractHashTable{ protected Entry[] array; public override void Withdraw(ComparableObject obj) { if (count == 0) throw new ContainerEmptyException(); int i = H(obj); while (i != NULL && (object)obj != (object)array[i].obj) i = array[i].next; if (i == NULL) throw new ArgumentException("obj not found"); for (;;) { int j = array[i].next; while (j != NULL) { int h = H(array[j].obj); bool contained = false; for (int k = array[i].next; k != array[j].next && !contained; k = array[k].next) { if (k == h) contained = true; } if (!contained) break; j = array[j].next; } if (j == NULL) break; array[i].obj = array[j].obj; i = j; } array[i] = new Entry(null, NULL); for (int j = (i + Length - 1) % Length; j != i; j = (j + Length - 1) % Length) { if (array[j].next == i) { array[j].next = NULL; break; } } --count; } // ...}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -