1.9 有序陣列的插入 (20分)
本題要求將任一給定元素插入從大到小排好序的陣列中合適的位置,以保持結果依然有序。
函式介面定義:
bool insert( list l, elementtype x );
其中list結構定義如下:
typedef int position;
typedef struct lnode list;
struct lnode ;
l是使用者傳入的乙個線性表,其中elementtype元素可以通過》、==、《進行比較,並且題目保證傳入的資料是遞減有序的。函式insert要將x插入data中合適的位置,以保持結果依然有序(注意:元素從下標0開始儲存)。但如果x已經在data中了,就不要插入,返回失敗的標記false;如果插入成功,則返回true。另外,因為data中最多只能存maxsize個元素,所以如果插入新元素之前已經滿了,也不要插入,而是返回失敗的標記false。
裁判測試程式樣例:
#include
#include
#define maxsize 10
typedef enum bool;
typedef int elementtype;
typedef int position;
typedef struct lnode list;
struct lnode ;
list readinput(); /* 裁判實現,細節不表。元素從下標0開始儲存 /
void printlist( list l ); / 裁判實現,細節不表 */
bool insert( list l, elementtype x );
int main()
bool;
typedef int elementtype;
typedef int position;
typedef struct lnode list;
struct lnode ;
list readinput(); /* 裁判實現,細節不表。元素從下標0開始儲存 /
void printlist( list l ); / 裁判實現,細節不表 */
bool insert( list l, elementtype x );
int main()
list readinput()
return list;}
bool insert( list l, elementtype x )
l->data[i+1]=tmp;
l->last+=1;
break;}}
if(l->data[l->last]>x)
}return true;
}void printlist( list l )
printf(」\n");
printf(「last = %d」,l->last);
這道題來自浙江大學的pat平台,在提交**的時候,只需要提交具體的實現方法就行,而且帶有「/* 裁判實現,細節不表 */」這樣注釋的具體方法也不用提交。很多人出現編譯錯誤就是因為多提交了不需要提交的實現方法
有序陣列的插入
習題1.9 有序陣列的插入 20 分 本題要求將任一給定元素插入從大到小排好序的陣列中合適的位置,以保持結果依然有序。函式介面定義 bool insert list l,elementtype x 其中list結構定義如下 typedef int position typedef struct ln...
有序陣列的插入
本題要求將任一給定元素插入從大到小排好序的陣列中合適的位置,以保持結果依然有序 bool insert list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用...
有序陣列的插入
本題要求將任一給定元素插入從大到小排好序的陣列中合適的位置,以保持結果依然有序。bool insert list l,elementtype x 其中list結構定義如下 typedef int position typedef struct lnode list struct lnode l是使用...