線性表類模板:
template < class t >
class list
;
順序錶類定義
class arrlist :public list
~arrlist()
void clear()
int length();
bool insert(const int p, const t value);
//在位置p上插入乙個元素value,表的長度增1
bool delete(const int p); //刪除位置p上的元素value,表的長度減1
bool getpos(int & p, const t value);
//查詢值為value的元素並返回其位置
bool getvalue(const int p, t& value);
//把位置p上的元素值返回到變數value中
bool setvalue(const int p, const t value);
//用value修改位置p的元素值
};
順序表的插入演算法
//設元素的型別為t,alist是儲存順序表的陣列,maxsize是其最大長度
//p是新元素value的插入位置,插入成功則返回true,否則返回false
template bool arrlist::insert(const int p, const t value)
if (p < 0 || p > curlen)
for (i = curlen; i > p; i--)
alist[i] = alist[i - 1];
alist[p] = value;
curlen++;
return true;
}
順序表的刪除演算法
template bool arrlist::delete(const int p)
if (p < 0 || p > curlen - 1)
for (i = p; i < curlen - 1; i++)
arrlist[i] = arrlist[i + 1];
curlen--;
return true;
}
單鏈表的節點定義
templateclass link
link(const link* nextvalue)
};
單鏈表定義
templateclass lnklist : public list;
查詢單鏈表中的第i個節點
//函式返回值是找到的節點指標
templatelink*lnklist::setpos(int i)
return p;
}
單鏈表刪除演算法
templatebool lnklist::delete(const int i)
q = p->next;
if (q == tail)
else if (q != null)
return true;
}
鏈式線性表和順序線性表
在這裡插入 片 線性表的儲存結構 typedef struct seqlist typedef struct seqlist 順序表基本操作 初始化順序表在這裡插入 片 intseqlist init seqlist list,int size 插入資料元素在這裡插入 片 intseqlist in...
線性表演算法題庫 線性表習題
鍊錶。若指標p指向某結點時,能夠根據該指標找到其直接後繼,能夠順後繼指標鏈找到p結點後的結點。但是由於不知道其頭指標,所以無法訪問到p指標指向的結點的直接前趨。因此無法刪去該結點。2.雙鏈表。由於這樣的鍊錶提供雙向指標,根據p結點的前趨指標和後繼指標可以查詢到其直接前趨和直接後繼,從而可以刪除該結點...
刪除線性表節點 線性表
submit 81 solved 66 submit status web board 已知長度為n的線性表a採用順序儲存結構,請寫一時間複雜度為0 n 空間複雜度為0 1 的演算法,該演算法刪除線性表中所有值為item的資料元素。o 1 表示演算法的輔助空間為常量 輸入 n 6 輸入資料 1 2 ...