2.閱讀下面程式代碼,請為每一條陳述句添加注釋,說明該陳述句的作用,并分析該演算法的功能及作業程序 template <typename T> bool SqListClass<T>::ListDelete(int i) { int j; if (i<1 || i>length) return false; for (j=i-1; j<length-1; j++) data[j]=data[j+1]; length; return true; }
3.閱讀下面程式代碼,請為每一條陳述句添加注釋,說明該陳述句的作用,并分析該演算法的功能及作業程序 void Insert(SqList *&L,ElemType x) { int i=0,j; while (i<L->length && L->data[i]<x) i++; for (j=L->length-1;j>=i;j) L->data[j+1]=L->data[j]; L->data[j]=L->data[j+1]; L->length++; }
uj5u.com熱心網友回復:
補全修改代碼里部分陳述句,供參考:template <typename T> bool SqListClass<T>::ListDelete(int i)//類模板函式 洗掉i位置的元素
{
int j;
if (i<1 || i>length)//如果i不在范圍內,回傳false,不進行后面的操作。
return false;
for (j=i-1; j<length-1; j++)//從i(i-1,是因為下標是從0開始)的位置,把后一個元素覆
data[j]=data[j+1]; //蓋前一元素
length--; //長度標記減一
return true; //回傳成功
}
void Insert(SqList *&L,ElemType x) //插入函式
{
int i=0,j;
while (i<L->length && L->data[i]<x) i++; //定位找到data[i]>x的位置
for (j=L->length-1;j>=i;j--)//L 中最后一個元素開始后移一位
L->data[j+1]=L->data[j]; //到i所在位置停止
L->data[j]=x; //L->data[j]=L->data[j+1];//插入操作
L->length++; //L 長度標記加一
}
uj5u.com熱心網友回復:
連個函式,一個洗掉元素,一個插入元素;洗掉元素采用的是覆寫策略,即找到以第一個被覆寫的位置,后面的覆寫前面的,以此完成;插入元素,和洗掉類似,即向后移動一個元素,首先判斷是不是在length范圍內,如果是,則從后面沒有賦值的地方開始,以此向后移動一個元素位置,直到要插入的位置,最后將要插入的元素放到插入的位置;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269205.html
標籤:C++ 語言
上一篇:關于字符輸出
下一篇:c語言呀呀呀
