//標頭檔案:單鏈表.cpp
#include"
linklist.h
"#include
template
linklist
::linklist()
template
void linklist::clear()
head=null;
}}template
linklist
::linklist(t data, int
msize)
}template
bool linklist::insert(int pos, const t&x)
else
}return
flag;
}template
bool linklist::remove(int pos, t&x)
else
}return
flag;
}template
bool linklist::replace(int pos, const t&x)
else
}return
flag;
}template
int linklist::length()const
return
cont;
}template
bool linklist::isempty() const
template
void linklist::output() const
cout
<
}template
bool linklist::search(const t&x) const
p = p->link;
}return
flag;
}
//測試**:linklist.h
#includeusing
namespace
std;
template
struct node //
結點結構
node(t e, node *next =null)
};template
class linklist //
帶表頭結點的單鏈錶類
//析構函式
bool insert(int pos, const t&x); //
在單鏈表第pos個元素前插入元素x
bool remove(int pos, t&x); //
刪除單鏈表第pos個元素
bool replace(int pos, const t&x); //
將修改單鏈表第pos個元素為x
int length()const; //
求表長bool isempty() const; //
判空操作
void clear(); //
清空操作
void output() const; //
輸出鍊錶
bool search(const t&x) const;//
查詢元素x在表中是否存在
};
//測試結果:測試.cpp
#include"
單鏈表.cpp
"#include
void menu()//
模擬選單選項
const
int n = 20
;int
main()
else
l.output();
break
;
case
2: //
插入int
pos, elem;
cout
<< "
請輸入插入位置:";
cin >>pos;
cout
<< "
插入元素:
";
cin >>elem;
if (l.insert(pos, elem)) //
插入成功
cout << "在第"
<< pos << "
個元素前成功插入
"<< elem <
else
//插入失敗
cout << "
插入位置不合法!
"<
break
;
case
3: //
刪除 cout << "
請輸入刪除位置:
"; cin >>pos;
intx;
if (l.remove(pos, x))//
刪除單鏈表的第pos個元素
cout << "
單鏈表的第
"<< pos << "
個元素"
<< x << "
已被刪除。
"<
else
cout
<< "
刪除位置不合法!
"<
break
;
case
4: //
銷毀鍊錶
char
ok; cout
<< "
確定要銷毀鍊錶嗎?(y/n)
"<
cin >>ok;
if (ok == '
y' || ok == 'y'
) l.clear();
break
;
case
5: //
查詢 cout << "
請輸入查詢元素:
";
cin >>elem;
if(l.search(elem))
cout
<< "
查詢成功!
"<
else
cout
<< "
查詢失敗!
"<
break
;
case
0: //
退出 exit(0
);
default
: cout
<< "
您輸入的選項有誤,請重新輸入:";}}
return0;
}
資料結構1 1 線性表
線性表 n個資料元素 a1,a2.an 的有限序列,大小為0的表為空表。前驅 在非空表中我們稱a i 1 是ai前驅。後繼 在非空表中我們稱a i 1 是ai後繼。用一組位址連續的順序儲存單元一次儲存線性表的資料元素。通常使用陣列來實現 插入和刪除最壞情況都需要o n 鍊錶由一系列不必在記憶體中相連...
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...