………………………………………………………………………………
以下内容注意int &e;
&表示的是e是引用变量。此时,删除方法中的变量e和main函数中的变量e在内存中对应的是同一份数据。
若e不是引用型变量,则main函数中声明了一个局部于main函数的变量e,并且调用了删除函数,但由于这个参数e不再是引用型变量会导致删除方法中处理的e是main函数中变量e的复制品。尽管main函数和删除方法中的变量e名称一样,但在内存中对应的是两份不同的数据,所以如果不加&的话,删除函数把此次删除的值赋给了删除函数中的变量e,其实是赋给了main函数中变量e的复制品。main函数中的e仍然保持初始值-1,没有变化。
综上,如果去掉&,打印是-1,而不是将要删除的元素的值。
同理,Sqlist &L;如果不加&,删除函数进行删除操作的顺序表L是main函数中顺序表L的复制品。main函数中的顺序表L不发生变化。
删除操作的时间复杂度:
插入和删除操作小结: