實現單鏈表的基本運算:初始化、插入、刪除、求表的長度、判空、釋放。
(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 初始化乙個頭節點,即定義乙個頭指...