鍊錶 單鏈表的基本運算

2021-08-10 14:42:06 字數 1500 閱讀 6148

實現單鏈表的基本運算:初始化、插入、刪除、求表的長度、判空、釋放。

(1)初始化單鏈表l,輸出l->next的值;

(2)依次採用尾插法插入元素:輸入分兩行資料,第一行是尾插法需要插入的字元資料的個數,第二行是具體插入的字元資料。

(3)輸出單鏈表l;

(4)輸出單鏈表l的長度;

(5)判斷單鏈表l是否為空;

(6)輸出單鏈表l的第3個元素;

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

(8)在第4個元素位置上插入『x』元素;

(9)輸出單鏈表l;

(10)刪除l的第3個元素;

(11)輸出單鏈表l;

(12)釋放單鏈表l。

兩行資料,第一行是尾插法需要插入的字元資料的個數,第二行是具體插入的字元資料。

按照題目要求輸出

5a b c d e

0a b c d e5no

c1a b c x d e

a b x d e

#includeusing namespace std;

#define ok 1

#define error 0

#define true 1

#define false 0

typedef int status;

typedef char elemtype;

typedef struct lnode *list;

typedef struct lnode

lnode,*linklist;

status initlist(linklist &l)//初始化

void createlist(linklist &l,int n)//後插法建立鍊錶

}int length(linklist &l)//求長度

return len;

}status emptylist(linklist &l)//判斷是否為空

void locateelem(linklist &l,elemtype e)//按值查詢

if(i != length(l) && p != null)//找到並且不為空

cout<< i + 1int i = 0;

while( p!= null && i< k -1)//退出迴圈只能為空或者 i = k -1

if(i == k -1)

if(!p || j> i-1)//未找到

else

}status listdelete(linklist &l,int i)//刪除指定位置元素

if(p == null || j> i -1)// 未找到

else

}void clearlist(linklist &l)//清空鍊錶

}void printlist(linklist &l)//輸出

else

coutp = p -> next;

}coutnum;

createlist(l,num);

printlist(l);

cout<

遍歷鍊錶(單鏈表的基本操作)

建立乙個公升序鍊錶並遍歷輸出。輸入描述 輸入的每個案例中第一行包括1個整數 n 1 n 1000 接下來的一行包括n個整數。輸出描述 可能有多組測試資料,對於每組資料,將n個整數建立公升序鍊錶,之後遍歷鍊錶並輸出。輸入例子 4 3 5 7 9 輸出例子 3 5 7 9 ac code include...

328奇偶鍊錶(單鏈表基本操作)

1 題目描述 給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。說明 2 示例 輸入 1 2 3...

鍊錶 單鏈表的建立

建立乙個節點 struct student 注意 當有新的節點要新增到鍊錶中時,原來最後乙個節點的指標將儲存新新增的節點位址,而新的節點的指標將指向空 null 當新增完成後,新節點將成為鍊錶的最後乙個節點。實際上是尾插法建立鍊錶 例 動態建立乙個鍊錶 步驟分析 1 初始化乙個頭節點,即定義乙個頭指...