time limit: 1 sec
memory limit: 2 mb
submit: 33
solved: 13 [
submit][
status][
web board]
若乙個線性表l採用順序儲存結構儲存,其中所有元素都為整數。設計乙個演算法,將所有小於0的元素移到所有大於0的元素前面,要求演算法的時間複雜度不超過o(nlog(n)),空間複雜度為o(1)。
順序表的定義為:
typedef struct
sqlist;
需編寫的演算法為:
void move(sqlist *&l);
輸入的資料有兩行,第一行輸入線性表的長度n,第二行依次輸入n個元素。
輸出的資料佔一行,為調整之後的線性表,每個元素中間用空格分隔。
10-12 25 -19 21 -18 -11 5 -18 9 -22
-12 -19 -18 -11 -18 -22 25 21 5 9
1、請選擇c++提交
2、注意調整後元素的順序
3、只需提交調整順序表元素的演算法(move函式)
#include
#include
#include
#define sizemax 100000
using
namespace
std;
typedef
int
elemtype;
typedef
struct
sqlist;
void
createlist(sqlist *&l,elemtype n)
void
move(sqlist *&l)
}
for
(i=0;ilength;i++)
}
}
void
print(sqlist *l)
int
main()
比較順序表中元素與表頭元素
思路分析 首先設定乙個變數儲存表頭元素,再設定兩個變數儲存順序表第乙個元素和最後乙個元素,然後分別從兩端開始遍歷順序表的元素與表頭元素相比較,先從從j所儲存的元素開始,若比表頭元素小,則j 若比表頭元素大將j所儲存的元素附給當前i所儲存的元素,然後又從i開始比較,如此往復,直到i j.include...
單鏈表元素定位(輸出鍊錶中元素的下標)
6 2 單鏈表元素定位 12 分 本題要求在鍊錶中查詢第乙個資料域取值為x的節點,返回節點的位序。l是乙個帶頭結點的單鏈表,函式listlocate l linklist l,elemtype x 要求在鍊錶中查詢第乙個資料域取值為x的節點,返回其位序 從1開始 查詢不到則返回0。例如,原單鏈表各個...
3 4鍊錶 鍊錶中元素的獲取 查詢和修改
本節是在上一小節的基礎上繼續完善我們的鍊錶相關方法的編寫,在本節中我們著重對如何獲取鍊錶中元素 查詢元素以及修改元素進行學習。獲取鍊錶的第index 0 based 個位置的元素 實際不常用,練習用 public e get int index node cur dummyhead.next for...