java順序結構(下標操作插入刪除查詢時的邊界問題)
阿新 • • 發佈:2019-01-09
1、順序表插入時的邊界
if (index < 0 || index > size)
應該為index > size。不能是index > size - 1。原因有2:
- 當順序表中無元素時,index與size都為0,若此時index > size - 1,則0 > 0 - 1,進入異常,不能正常插入第一個元素
- 假如當順序表中有2個元素時,此時size為2,當插入第3個元素時,即index為2時,若index > size - 1,則 2 > 2-1,進入迴圈,不能正常向後插入,因此,正確的下標應該為index > size。
2、順序表刪除時的邊界
if (index < 0 || index > size - 1)
3、用下標獲取元素時的邊界
if (index < 0 || index >= size) 或 if (index < 0 || index > size - 1)
因為
if (index < 0 || index >= size)
與
if (index < 0 || index > size - 1)
相同,加入size 為6,則第一個式子中的index取值為0、1、2、3、4、5
第二個式子中的index取值為0、1、2、3、4、5