實現迴圈單鏈表各種基本運算的演算法

2021-09-25 08:21:04 字數 2729 閱讀 3727

/**

*    實驗題目:

*        實現迴圈單鏈表各種基本運算的演算法

*    實驗內容:

*        編寫乙個程式實現迴圈單鏈表的各種基本運算,並在此基礎上設計乙個主程式

*    完成如下功能:

*    (1)初始化迴圈單鏈表h

*    (2)依次採用尾部插入法插入a,b,c,d,e元素

*    (3)輸出迴圈單鏈表h

*    (4)輸出迴圈單鏈表h長度

*    (5)判斷迴圈單鏈表h是否為空

*    (6)輸出迴圈單鏈表h的第3個元素

*    (7)輸出元素a的位置

*    (8)在第4個元素位置上插入f元素

*    (9)輸出迴圈單鏈表h

*    (10)刪除h的第3個元素

*    (11)輸出迴圈單鏈表h

*    (12)釋放迴圈單鏈表h

*/#include

#include

typedef char elemtype;

typedef struct lnode            // 定義迴圈單鏈表結點型別

linklist;

/*-------------------------初始化迴圈單鏈表l------------------------*/

void initlist(linklist *&l) // 指標的引用

/*-------------------------釋放迴圈單鏈表l------------------------*/

void destroylist(linklist *&l)

free(p);

}/*-------------------------判斷迴圈單鏈表l是否為空表------------------------*/

int listempty(linklist *l)

/*-------------------------返回迴圈單鏈表l的元素個數------------------------*/

int listlength(linklist *l)

return i;

}/*-------------------------輸出迴圈單鏈表l------------------------*/

void displist(linklist *l)

printf("\n");

}/*-------------------------獲取迴圈單鏈表l中的第i個元素------------------------*/

int getelem(linklist *l, int i, elemtype &e) // 引用

else                    // i不為1時

if(p == l)

return 0;

else                // 找到第i個元素}}

else                        // 單鏈表為空表時

return 0;

}/*-------------------------在迴圈單鏈表l中查詢元素e------------------------*/

int locateelem(linklist *l, elemtype e)

if(p == l)

return 0;

else

return n;

}/*-------------------------在迴圈單鏈表l中第i個位置上插入元素e------------------------*/

int listinsert(linklist *&l, int i, elemtype e)

else

if(p == l)                                        // 未找到第i-1個結點

return 0;

else                                            // 找到第i-1個結點}}

/*-------------------------在迴圈單鏈表l中刪除第i個元素------------------------*/

int listdelete(linklist *&l, int i, elemtype &e)

else                                            // i不為1時

if(p == l)                                    // 未查找到第i-1個結點    

return 0;

else                                        // 查詢到第i-1個結點    }}

else

return 0;

}int main(void)

測試結果:

(1)初始化迴圈單鏈表h

(2)依次採用尾部插入法插入a,b,c,d,e元素

(3)輸出迴圈單鏈表h:a b c d e

(4)迴圈單鏈表h長度=5

(5)迴圈單鏈表h為非空

(6)迴圈單鏈表h的第3個元素=c

(7)元素a的位置=1

(8)在第4個元素位置上插入f元素

(9)輸出迴圈單鏈表h:a b c f d e

(10)刪除h的第3個元素

(11)輸出迴圈單鏈表h:a b f d e

(12)釋放迴圈單鏈表h

單鏈表的各種基本運算

輸入 實驗題2 2 include includetypedef char elemtype typedef struct lnode linklist 使用頭插法 void createlistf linklist l,elemtype a,int n 使用尾插法 void createlistr...

單鏈表各種基本運算的演算法

include includetypedef char elemtype typedef struct lnode linknode 宣告單鏈表節點型別 void createlistf linknode l,elemtype a,int n 頭插法建立單鏈表 void createlistr li...

實驗一 單鏈表的各種基本運算

編寫乙個程式,實現單鏈表的各種基本運算 建立乙個單鏈表,實現單鏈表的初始化,插入 刪除節點等功能,以及確定某一元素在單鏈表中的位置。1 初始化單鏈表 2 依次採用尾插入法插入a,b,c,d,e元素 3 輸出單鏈表l 4 輸出單鏈表l的長度 5 判斷單鏈表l是否為空 6 輸出單鏈表l的第三個元素 7 ...