【正文】
//從第K個(gè)開(kāi)始計(jì)數(shù) int k = 0。 } public static void yuesefu(int totalNum, int countNum) { // 初始化人數(shù) ListInteger start = new ArrayListInteger()。 (請(qǐng)輸入報(bào)數(shù)的大?。?。 import 。要求設(shè)計(jì)一個(gè)程序模擬此過(guò)程,求出出列編號(hào)序列。五 上機(jī)實(shí)習(xí)題目約瑟夫環(huán)問(wèn)題 約瑟夫環(huán)問(wèn)題:設(shè)編號(hào)為1,2,3,……,n的n(n0)個(gè)人按順時(shí)針?lè)较驀蝗Γ總€(gè)人持有一個(gè)正整數(shù)密碼。4. 線性表中有n個(gè)元素,每個(gè)元素是一個(gè)字符,現(xiàn)存于向量R[n]中,試寫(xiě)一算法,使R中的字符按字母字符、數(shù)字字符和其它字符的順序排列。并且分析算法的時(shí)間復(fù)雜度。插入一個(gè)元素時(shí)平均要移動(dòng)表中的( A )個(gè)元素。6.在線性表的順序存儲(chǔ)結(jié)構(gòu)中,插入和刪除時(shí),移動(dòng)元素的個(gè)數(shù)與該元素的位置有關(guān)。2.順序存儲(chǔ)的線性表可以按序號(hào)隨機(jī)存取?!?.順序表的插入和刪除操作不需要付出很大的時(shí)間代價(jià),因?yàn)槊看尾僮髌骄挥薪话氲脑匦枰苿?dòng)?!潭?單選題 (請(qǐng)從下列A,B,C,D選項(xiàng)中選擇一項(xiàng))1.線性表是( A ) 。 (A) n/2 (B) n+1/2 (C) n 1/2 (D) n 三 填空題1.在順序表中做插入操作時(shí)首先檢查_(kāi)__表是否滿了______________。2. 已知一順序表A,其元素值非遞減有序排列,編寫(xiě)一個(gè)函數(shù)刪除順序表中多余的值相同的元素。要求利用原來(lái)的存儲(chǔ)空間,元素移動(dòng)次數(shù)最小。開(kāi)始時(shí)任選一個(gè)正整數(shù)做為報(bào)數(shù)上限m,從第一個(gè)人開(kāi)始順時(shí)針?lè)较蜃?起順序報(bào)數(shù),報(bào)到m是停止報(bào)數(shù),報(bào)m的人出列,將他的密碼作為新的m值,從他的下一個(gè)人開(kāi)始重新從1報(bào)數(shù)。package 算法設(shè)計(jì)。 public class YueSeFu { public static void main(String[] args) { Scanner scan = new Scanner()。 int cycleNum = ()。 for (int i = 1。 while (() 0) { k = k + countNum。 k = 0。2.線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)優(yōu)于順序存儲(chǔ)結(jié)構(gòu)。(A) 一個(gè)有限序列,可以為空; (B) 一個(gè)有限序列,不能為空; (C) 一個(gè)無(wú)限序列,可以為空; (D) 一個(gè)無(wú)序序列,不能為空。(A)便于隨機(jī)存取(B)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少(C)便于插入和刪除(D)數(shù)據(jù)元素的物理順序與邏輯順序相同,則采用( D )存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。(A) 使單鏈表至少有一個(gè)結(jié)點(diǎn) (B)標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置(C)方便運(yùn)算的實(shí)現(xiàn) (D) 說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)8. 若某線性表中最常用的操作是在最后一個(gè)元素之后插入一個(gè)元素和刪除第一個(gè)元素,則采用( D )存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。3.在一個(gè)單鏈表中p所指結(jié)點(diǎn)之后插入一個(gè)由指針f所指結(jié)點(diǎn),應(yīng)執(zhí)行snext=__ pnext ___。t=pdata。并且分析算法的時(shí)間復(fù)雜度。 public Lii(){ data=0。 public Lii_2(){ first=new Lii()。 while(!=nullamp。 =newnode。 while(p!=null){ ()。 } } public class L{ public static void main(String[] args){ Lii_2 s1=new Lii_2()。 } ()。package xiti1。//結(jié)點(diǎn)構(gòu)造方法 } public void display(){//顯示自身的數(shù)據(jù)域 (data+ )。 link p。 =newLink。amp。jindex){ j++。 } public int Length() { link p=first。 } return i。 p=。 link_1 C=new link_1()。iB()){ if((iA)(iB)) ((iA++))。) ((iA++))。 return C。 (15)。 ()。 (21)。 ()。class l