實驗二 單鏈表的實現
一、 實驗目的
1. 掌握線性表的鏈結儲存結構;
2. 驗證單鏈表及其基本操作的實現;
3. 進一步掌握資料結構及演算法的程式實現的基本方法。
二、 實驗內容。 1.
根據課件關於單鏈表的定義,實現帶頭結點的單鏈表; 2.
用頭插法(或尾插法)建立帶頭結點的單鏈表;
3.實現基本線性表的就地逆置reverse()方法,也就是將基本線性表中的資料元素交換位置排列,新的序列與原來的順序正好相反,比如原來序列「abcdef」,倒置後變為「fedcba」。
[提示]:把乙個單鏈表斷開為兩個單鏈表,其中乙個由first指標指向,只包含乙個頭結點成為乙個空表,另乙個單鏈表由p指標指向,成為乙個不帶頭結點單鏈表,接下來從p單鏈表中取出第乙個元素插入first鍊錶的頭部,直到p指向空為止。
4.用單鏈表儲存學生**,測試資料如下: 5.
a、建立空表,判斷表是否空
b、按順序插入資料001 張三2005 70
002 李四2004 65
c、張三之後插入003 王五2005 80
張三之前插入004 馬六2006 90
李四之後插入005 黃榮2004 85
d、刪除第一條記錄
刪除最後一條記錄
e、查詢黃榮是否在表中,在則列印「存在記錄:005 黃榮2004
85」,否則列印「不存在」
查詢郭清是否在表中,列印相應結果
f、列印**記錄數,
g、列印整個**
三、 實驗環境
1.pc
機,windowsxp作業系統
2.vc++6.0軟體
四、 回答問題
1. 雙鏈表插入乙個結點p的操作步驟是什麼?
if(d==0)
else
2. 雙鏈表的刪除乙個結點p的操作的步驟是什麼?
if(current==null)returnfalse;
current->rlink->llink=current->llink;
current->llink->rlink=current->rlink;
x=current->data;deletecurrent;
#include
using namespace std;
template
structlinknode
linknode(constt&item,linknode*ptr=null) };
template
class list
list(const t& x)
list(list&l);
~list()
void makeempty();
int length()const;
linknode*gethead()const
linknode*seartch(t x);
linknode*locate(int i);
bool getdata(int i ,t& x)const;
void setdata(int i,t& x);
void insert(t endtag);
bool remove(int i,t& x);
bool isempty()const
bool isfull()const
void input();
void output();
linknode*reverse();
void move();
protected:
linknode*first;
};
template
list::list(list&l)
destptr->link=null; }
template
voidlist::makeempty() }
template
intlist::length()const
return count;}
template
linknode*list::seartch(t x)
template
linknode*list::locate(int i)
returncurrent; }
template
voidlist::setdata(int i,t& x)
template
voidlist::insert(t endtag)
last->link=null;}
template
linknode*list::reverse() */
linknode*p,*v1,*v2;
v2=first;
v1=null;
while( v2!=null )
while(v1!=null)
return v1;
}template
voidlist::output() }
voidmain()
實驗二 單鏈表的實現
建立乙個由 n個學生成績的單鏈表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。分別輸出結果。二 實驗過程 ifndef linllist h define linklist h template struct node template class ...
單鏈表實驗
實驗報 告 實驗一 單鏈表及其應用 一 實驗目的 1 掌握線性表的鏈結儲存結構 2 驗證單鏈表及其基本操作的實現 3 進一步理解演算法與程式的關係,能夠將單鏈表演算法轉換為對應的程式。二 實驗內容 1 用頭插法 或尾插法 建立帶頭結點的單鏈表 2 用已建立的單鏈表實現插入 刪除 查詢等基本操作。三 ...
資料結構實驗二 單鏈表的基本實現
資料結構實驗 實驗二 單鏈表 2學時 1.設計實驗 設計演算法,實現線性結構上的單鏈表的產生以及元素的查詢 插入與刪除。1 4題必做,5 8題選做 具體實現要求 1 用正位序的方法,建立乙個由13個整數構成的帶頭結點的單鏈表。建議13個整數由鍵盤輸入。2 從鍵盤輸入1個整數,在單鏈表中查詢該結點的位...