資源簡介 作業練習課程基本信息學科 信息技術 年級 高三 學期 秋季課題 2.2.2 鏈表在解決實際問題時的應用教科書 書 名:選擇性必修1 數據與數據結構 教材 出版社:浙江教育出版社學生信息姓名 學校 班級 學號作業練習1.編程實現5個人的約瑟夫問題。 ① 完善程序,創建包含5個節點的單向循環鏈表; ②結合注釋,完善模擬報數程序:從頭指針指向的第一個節點開始報數,每過一個節點報數值加1,報道3的退出圈子,循環后一個節點重新從1開始報數。依次輸出退出圈子的初始編號,最后輸出留在圈子里的編號。 ③ 程序運行。 2.如下程序是“簡易外來人員進出登記系統”的代碼,結合系統功能及操作原理,完善程序: 程序運行示例效果如下。n=5#共5人m=3#每報數m的編號退出圈子yuesefu=[1,],[2,],[3,],[4,],[5,]]head-0print("退出圈子的初始編號依次為:”,end=")p=head#當前報數節點在列表中的索引c1#用于報數用的計數器,每過一個節點計數值加1while yuesefu[head][1]!=head:preD#記錄報過數的節點在列表中的索引p=yuesefu[p][1]c+=1if c==m:#此時,報數為m的節點在列表中的索引保存在變量#其前驅節點在列表中的索引保存在變量print (yuesefu[][0],end="")if head==head=yuesefu[][1]=yuesefu[][1]p=yuesefu][1]c=1print("\n最后留在圈子里的初始編號是”,yuesefu[head][0])退出圈子的初始編號依次為:31最后留在圈子里的初始編號是4Item=0#先創建空鏈表head=-1print("q:退出程序1:進校處理2:出校處理3:按時間查看校內人員")s=input("請輸入操作符號:")while s!-"q"fs=="1":#人員進校處理newin-=input("請輸入進校人員姓名和手機號,用+連接")node=newin,.-l]#形成節點Item.append(node)并將節點保存到列表上if head---1:head=len(Item)-1else:#編寫插入節點的代碼eifs=="2":#人員出校處理newout=-input("請輸入出校人員姓名和手機號,用+連接")p-headwhile p!=-1 and Item[p][O]=newout:#查找所在節點pre-pp=Item[p][1]if p==-1:printe(ewout,."不在學校內,請確認信息")else:#編寫刪除節點的代碼pint(newout,"出校處理完成)elif s=="3".pint("還在校內的人員有:)p-head#遍歷輸出當前鏈表上的節點數據printOs=input("請輸入操作符號:")作業練習課程基本信息學科 信息技術 年級 高二 學期 春季課題 初識鏈表教科書 書 名:《數據與數據結構》教材 出版社:浙江教育出版社學生信息姓名 學校 班級 學號作業練習一、選擇題 1.對長度位n的有序單鏈表,若檢索每個元素的概率相等,則順序檢索到表中任一元素的平均檢索長度為( ) A. n/2 B. (n+1)/2 C. (n-1)/2 D. n/4 2.下列關于數據結構的說法,正確的是( ) A.常見的線性關系數據結構有數組、鏈表、隊列、棧和圖 B.數組和鏈表在操作時,其存儲空間固定不變 C.鏈表在插入和刪除元素時,算法效率比數組高 D.進行數據的插入操作時,鏈表中的元素會被移動 3.對于單向鏈表的節點結構,以下說法不正確的是( ) A.節點的數據區域用于存放實際需要處理的數據元素 B.節點的指針區域用于存儲相鄰節點的存儲地址 C.單向鏈表必須帶有數據區域為空的頭節點和尾節點 D.單向鏈表中的各個節點在內存中可以非順序存儲 4.有如下Python程序段: d=[["a",2],["b",-1],["c",1]] head=0 p=0 d.append(["d",d[p][1]]) d[p][1]=len(d)-1 執行上述程序段后,下列說法正確的是( ) A.d[0][1]的值為2,單向鏈表d的尾節點數據值為“b” B.d[1][1]的值為-1,單向鏈表d的尾節點數據值為“b” C.d[3][1]的值為1,單向鏈表d的尾節點數據值為“c” D.d[2][1]的值為1,單向鏈表d的尾節點數據值為“c” 5.采用列表模擬單向鏈表,data[p][0]為數據區域,data[p][1]為指針區域。在單向鏈表指針為 p的節點之后插入指針為 s 的節點,正確的操作是( ) A.data[s][1]=p data[p][1]=data[s][1] B.data[p][1]=s data[s][1]=data[p][1] C.data[s][1]=data[p][1] data[p][1]=s D.data[p][1]=data[s][1] data[s][1]=p 參考答案: BCCBC作業練習課程基本信息學科 信息技術 年級 高二 學期 春季課題 鏈表的應用教科書 書 名:《數據與數據結構》教材 出版社:浙江教育出版社學生信息姓名 學校 班級 學號作業練習有一組數據集合由1到m之間的正整數組成。指定一段數據的開始位置和結束位置,能夠統計出該段數據中不同數值的個數。編寫Python,實現上述統計功能。運行程序,隨機生成n個1到m之間的正整數和Q個詢問L和R。 實現上述功能的Python程序如下,請在劃線處填入合適的代碼。 n=int(input()) a=list(map(int,input().split())) Q=int(input()) ask=[[0]*100 for i in range(100)] Min=9999999 Max=-1 pos=[0]*100 Next=[-1]*100 for i in range(Q): L,R=map(int ,input().split()) if(LMax): Max=R ask[i][0],ask[i][1]=L,R for i in range(Min,Max+1): if pos[a[i]]==0: pos[a[i]]=i Next[i]=0 else: ① pos[a[i]]=i for i in range(Q): num= ② for j in range(ask[i][1],ask[i][0]+1,-1): if ③ : num-=1 print(ask[i][0],"到",ask[i][1],"之間有:",num,"個不同的數") 參考答案: ①Next[i]=pos[a[i]] ②ask[i][1]-ask[i][0]+1 ③Next[j]>=ask[i][0] and Next[j]<=ask[i][1] 展開更多...... 收起↑ 資源列表 高中信息技術浙教版(2019)選修1:2.2 鏈表-課后練習(含答案) (1).docx 高中信息技術浙教版(2019)選修1:2.2 鏈表-課后練習(含答案) (2).docx 高中信息技術浙教版(2019)選修1:2.2 鏈表-課后練習(含答案).docx 縮略圖、資源來源于二一教育資源庫