當前位置:首頁 » 文件傳輸 » 求頁面訪問順序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

求頁面訪問順序

發布時間: 2022-04-24 21:51:00

① 某進程訪問頁面的順序為2,3,2,1,5,2,4,5,3,2,5,2,假設該進程分配3個物理塊,L

方法:先進先出演算法,工作區頁面是3時頭3次肯定缺頁,把前3個頁面放入工作區,然後看後面要訪問的頁面是否在工作區中,如果是就不動,如果不在即是缺頁,把最早進入的頁面替換掉。算出缺頁次數再除以訪內次數就是缺頁率。

② 求教編程高手!!如何讓瀏覽器依次訪問有規律的網頁

又!!病的不輕呀!!
出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。

一:先說說硬體:

一般來說,電腦硬體是很不容易壞的。內存出現問題的可能性並不大(除非你的內存真的是雜牌的一塌徒地),主要方面是:1。內存條壞了(二手內存情況居多)、2。使用了有質量問題的內存,3。內存插在主板上的金手指部分灰塵太多。4。使用不同品牌不同容量的內存,從而出現不兼容的情況。5。超頻帶來的散熱問題。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。

二、如果都沒有,那就從軟體方面排除故障了。

先說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在緩沖區,需要操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「游標」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標,繼續在之後的執行中使用這塊內存。真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即當機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的內存不能為「read」錯誤,並指出被引用的內存地址為「0x00000000「。內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。

在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試圖讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的游標已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效游標不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其它隨機數字。

首先建議:

1、 檢查系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。

2、 更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。

3、 盡量使用最新正式版本的應用程序、Beta版、試用版都會有BUG。

4、 刪除然後重新創建 Winnt\System32\Wbem\Repository 文件夾中的文件:在桌面上右擊我的電腦,然後單擊管理。 在"服務和應用程序"下,單擊服務,然後關閉並停止 Windows Management Instrumentation 服務。 刪除 Winnt\System32\Wbem\Repository 文件夾中的所有文件。(在刪除前請創建這些文件的備份副本。) 打開"服務和應用程序",單擊服務,然後打開並啟動 Windows Management Instrumentation 服務。當服務重新啟動時,將基於以下注冊表項中所提供的信息重新創建這些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs

下面搜集幾個例子給大家分析:

例一:IE瀏覽器出現「0x0a8ba9ef」指令引用的「0x03713644」 內存,或者「0x70dcf39f」指令引用的「0x00000000」內存。該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE瀏覽器也被關閉。解決方法:

1、 開始-運行窗口,輸入「regsvr32 actxprxy.dll」回車,接著會出現一個信息對話 框「DllRegisterServer in actxprxy.dll succeeded」,確定。再依次運行以下命令。(這個方法有人說沒必要,但重新注冊一下那些.dll對系統也沒有壞處,反正多方下手,能解決問題就行。)

regsvr32 shdocvw.dll

regsvr32 oleaut32.dll

regsvr32 actxprxy.dll

regsvr32 mshtml.dll

regsvr32 msjava.dll

regsvr32 browseui.dll

regsvr32 urlmon.dll

2、 修復或升級IE瀏覽器,同時打上系統補丁。看過其中一個修復方法是,把系統還原到系統初始的狀態下。建議將IE升級到了6.0。

例二:有些應用程序錯誤: 「0x7cd64998」 指令參考的 「0x14c96730」 內存。該內存不能為 「read」。解決方法:Win XP的「預讀取」技術這種最佳化技術也被用到了應用程序上,系統對每一個應用程序的前幾次啟動情況進行分析,然後新增一個描述套用需求的虛擬「內存映像」,並把這些信息儲存到Windows\Prefetch文件夾。一旦建立了映像,應用軟體的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動或應用軟體啟動的信息。建議將虛擬內存撤換,刪除Windows\Prefetch目錄下所有*.PF文件,讓windows重新收集程序的物理地址。

例三:在XP下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用的「0x00000078」內存。該內存不能為「written」,要終止程序,請單擊「確定」,而在Windows 98里運行卻正常。 解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「Windows 98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32 c:\winnt\apppatch\slayerui.dll。右鍵,屬性,也會出現兼容性的選項。

例四:RealOne Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為「read」 的提示。 解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。

例五:我的豪傑超級解霸自從上網後就不能播放了,每次都提示「0x060692f6」(每次變化)指令引用的「0xff000011」內存不能為「read」,終止程序請按確定。 解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。

例六:雙擊一個游戲的快捷方式,「0x77f5cd0」指令引用「0xffffffff」內 存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。

例七:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0x772b548f」指令引用的「0x00303033」內存,該內存不能為「written」,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。 解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。

該內存不能為read或written的解決方案關鍵詞: 該內存不能為"read" 該內存不能為"written"

從網上搜索來的幾篇相關文章.

使用Windows操作系統的人有時會遇到這樣的錯誤信息:
「「0X????????」指令引用的「0x00000000」內存,該內存不能為「read」或「written」」,然後應用程序被關閉。

如果去請教一些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。其實,這個錯誤並不一定是Windows不穩定造成的。本文就來簡單分析這種錯誤的一般原因。
一、應用程序沒有檢查內存分配失敗
程序需要一塊內存用以儲存數據時,就需要使用操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「游標」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標,繼續在之後的執行中使用這塊內存。真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即當機,而在健壯的操作系統中,如Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。
二、應用程序由於自身BUG引用了不正常的內存游標
在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試突讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的游標已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效游標不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其它隨機數字。如果系統經常有所提到的錯誤提示,下面的建議可能會有說明 :

1.檢視系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,
從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。
有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。
3.試用新版本的應用程序。

Mode:
將虛擬內存撤換
答案:
目前為止是肯定的,也就是如在下次冷天到來時亦沒再發生,就代表這是主因
追加:
如果你用 Ghost 恢復 OS 後建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件因為需讓windows重新收集程序的物理地址
有些應用程序錯誤 "0x7cd64998" 指令參考的 "0x14c96730" 內存。該內存不能為 "read"推論是此原因
源由:
Win XP的「預讀取」技術
這種最佳化技術也被用到了應用軟體上,系統對每一個應用軟體的前幾次啟動情況進行分析,然後新增一個描述套用需求的虛擬「內存映像」,並把這些信息儲存到WINDOWSPREFETCH數據夾。一旦建立了映像,應用軟體的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動或應用軟體啟動的信息。
後敘:
目前此方法亦是獨步網路的(其碼自己針對此問題查了許久),也是常見問題,原本幾乎每天睡前關閉軟體時一些程序都會發生...read...
現在就沒發生了。

運行某些程序的時候,有時會出現內存錯誤的提示(0x後面內容有可能不一樣),然後該程序就關閉。
「0x????????」指令引用的「0x????????」內存。該內存不能為「read」。
「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。
不知你出現過類似這樣的故障嗎?
一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。
下面先說說硬體:
一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest 這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。
假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,你就要檢查是不是內存出問題了或者和其它硬體不兼容。
如果都沒有,那就從軟體方面排除故障了。
先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows 2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似Windows 98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之間的兼容性不好造成的。
下面我從幾個例子給大家分析:
例一:打開IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"內存。該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE瀏覽器也被關閉。 解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替。
例二:在windows xp下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用的「0x00000078」內存。該內存不能為「written」,要終止程序,請單擊「確定」,而在Windows 98里運行卻正常。 解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「Windows 98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32 c:\winnt\apppatch\slayerui.dll。右鍵,屬性,也會出現兼容性的選項。
例三:RealOne Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為「read」 的提示。 解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。
例四:我的豪傑超級解霸自從上網後就不能播放了,每次都提示「0x060692f6」(每次變化)指令引用的「0xff000011」內存不能為「read」,終止程序請按確定。 解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。
例五:雙擊一個游戲的快捷方式,「0x77f5cd0」指令引用「0xffffffff」內 存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。 解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。
例六:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0x772b548f」指令引用的「0x00303033」內存,該內存不能為「written」,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。 解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。

1 內存條壞了 更換內存條
2 雙內存不兼容 使用同品牌的內存或只要一條內存
3 內存質量問題 更換內存條
4 散熱問題 加強機箱內部的散熱
5 內存和主板沒插好或其他硬體不兼容 重插內存或換個插槽
6 硬體有問題 更換硬碟
7 驅動問題 重裝驅動,如果是新系統,應先安裝主板驅動
8 軟體損壞 重裝軟體
9 軟體有BUG 打補丁或更新到最新版本
10 軟體和系統不兼容 給軟體打上補丁或是試試系統的兼容模式
11 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,卸載了試試
12 軟體要使用其他相關的軟體有問題 重裝相關軟體,比如播放某一格式的文件時出錯,可能是這個文件的解碼器有問題
13 病毒問題 殺毒
14 殺毒軟體與系統或軟體相沖突 由於殺毒軟體是進入底層監控系統的,可能與一些軟體相沖突,卸載試試
15 系統本身有問題 有時候操作系統本身也會有BUG,要注意安裝官方發行的更新程序,象SP的補丁,最好打上.如果還不行,重裝系統,或更換其他版本的系統。

〔又一說〕

在控制面板的添加/刪除程序中看看你是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮卸載它,當然如果你以後在其它程序需要NET.Framework時候,可以再重新安裝。
另外,如果你用的是ATI顯卡並且你用的是SP2的補丁(一些ATI的顯卡驅動需要在NET.Framework正常工作的環境下)。這種情況你可以找一款不需要NET.Framework支持的ATI顯卡驅動。
如果以上兩種方法並不能完全解決問題,你試著用一下「IE修復」軟體,並可以查查是否有病毒之類的。
〔微軟NET.Framework升級到1.1版應該沒問題了〕

〔還有一說〕

方法一:

微軟新聞組的朋友指點:開始--運行:regsvr32 jscript.dll
開始--運行:regsvr32 vbscript.dll

不過沒解決---但提供了路子-----一次運行注冊所有dll
搜索查找到方法如下:

運行 輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
這個命令老兄你慢慢輸 輸入正確的話會看到飛快地滾屏 否則……否則失敗就是沒這效果。回車後慢慢等(需要點時間1-2分鍾) 都運行完再打開看

方法二:
這是個典型問題~~~~~引起這個問題的原因很多。一般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方法來解決。[系統補丁只要到Microsoft Update網站在線更新就可以了]
造成這種問題的原因很多,不能單純的下結論,盡量做到以下幾點可能對你有幫助:
1。確保使用的是未修改過的軟體(非漢化、破解版)
2。使用改軟體時盡量不要運行其他軟體。(這是個臨時文件,可能某些軟體也在使用臨時文件夾,所以產生干擾)
3。把那些什麼桌面工具,內存整理工具通通關掉(你至少有2個類似的工具在運行)」

處理方法:
運行regedit進入注冊表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,應該只有一個正常的鍵值", 將其他的刪除。

〔我個人的最後解決和看法〕

我今天嘗試了多種辦法,最後我發現問題出在微軟的NET.Framework上面。我升級了這個軟體,並打齊了補丁,短暫平安後,有出現「內存不能為read」的情況。後來我受上面文章的啟發,卸載了微軟的NET.Framework1.0和1.1,世界太平了。

另外:如果是打開「我的電腦」、「我的文檔」等的時候出現上述情況,還有一種可能,就是你的右鍵菜單太臃腫了,此時只要清理右鍵菜單問題就解決了。
--------------------------------------------------------------------------------

〔試驗的結果〕

上面的方法,最管用、最徹底的方法是這個:

運行 輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

如果怕輸入錯誤的話,可以復制這條指令,然後在命令提示框點擊左上角的c:\,使用下面的「編輯-粘貼」功能就不容易輸錯了。在飛速滾屏完全靜止之後,別著急啟動其他程序,先耐心等一會兒,因為此時dll們還在找位置。直到你的指示燈不閃了再做別的
我可以幫助你,你先設置我最佳答案後,我網路Hii教你。

③ 字地址序列與頁面順序

分配給改作業的共3頁,剛開始已經把第0頁裝進去了,按照FIFO演算法,
第一次尋找的字地址為115,在第一頁,但是他不在該作業的內存中,發生一次缺頁中斷,將第一頁調入內存;
第二次訪問228,所在的第二頁也不在內存中,發生缺頁中斷,並把第二頁調入內存;
第三次訪問88所在0頁在內存中,所以就沒發生缺頁中斷;
第四次訪問446,所在的4頁不在內存中,發生缺頁中斷,並把最早裝進去的0頁淘汰,用第四頁替換;
第五次訪問102,第一頁在內存中,所以就不發生缺頁中斷;
.
共訪問10次,發生了5次缺頁中斷,所以0.5的缺頁中斷率.
lru演算法累似.

④ 對於如下的頁面訪問序列:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5。

FIFO淘汰演算法:
內存塊為3時,缺頁中斷(或稱缺頁次數、頁面故障)為9;內存塊為4時,缺頁中斷為10。(這似乎是一個奇怪的現象,同時也告訴我們,操作系統是一個復雜的機構,直觀是靠不住的!)
LRU淘汰演算法:
內存塊為3時,缺頁中斷為10;內存塊為4時,缺頁中斷為8。
(具體計算過程省略,解答時請樓主寫出計算過程。)

⑤ LRU演算法,頁面訪問序列1.2.3.4.2.1.5.6.2.1.2.3.7.6.3,分配給進程3頁內存,開始內存為空,採用LRU演算法

前3次不用說,都是缺頁,現在計c=3,m={1,2,3}
載入4,未中,C=4。1最近沒怎麼使用,棄掉,m={2,3,4}
載入2,命中,調整LRU順序,m={3,4,2}
載入1,未中,C=5。3最近最少用,m={4,2,1}
載入5,未中,C=6。4最近最少使用,m={2,1,5}
6,未中,C=7,棄2,{1,5,6}
2,未中,C=8,棄1,{5,6,2}
1,未中,C=9,棄5,{6,2,1}
2,中,調LRU{6,1,2}
3,未中,C=10,棄6,{1,2,3}
7,未中,C=11,棄1,{2,3,7}
6,未中,C=12,棄2,{3,7,6}
3,中,調LRU{7,6,3}
因此一共缺了C=12次

⑥ 操作系統: 考慮如下的頁訪問序列(序列中每一個元素都是頁號): 12345213323454511325

《數據結構》試題

一、選擇題(每小題2分,共30分)

1. 若某線性表中最常用的操作是取第i 個元素和找第i個元素的前趨元素,則採用( )存儲方式最節省時間。

A、單鏈表 B、雙鏈表 C、單向循環 D、順序表

2. 串是任意有限個( )

A、符號構成的序列 B、符號構成的集合

C、字元構成的序列 D、字元構成的集合

3. 設矩陣A(aij ,l≤i,j≤ 10)的元素滿足:

aij≠0(i≥j, l≤i, j≤ 10)

aij=0 (i<j, l≤i, j≤ 10)

現將A的所有非0元素以行序為主序存放在首地址為2000的存儲區域中,每個元素佔有4個單元,則元素A[9][5]的首址為

A、2340 B、2336 C、2164 D、2160

4. 如果以鏈表作為棧的存儲結構,則退棧操作時( )

A、 必須判別棧是否滿

B、 對棧不作任何判別

C、 必須判別棧是否空

D、 判別棧元素的類型

5. 設數組Data[0..m]作為循環隊列SQ的存儲空間,front為隊頭指針,rear為隊尾指針,則執行出隊操作的語句為( )

A、front=front+1 B、front=(front+1)% m

C、rear=(rear+1)%m D、front=(front+1)%(m+1)

6. 深度為6(根的層次為1)的二叉樹至多有( )結點。

A、 64 B、32 C、31 D、63

7. 將含100個結點的完全二叉樹從根這一層開始,每層上從左到右依次對結點編號,根結點的編號為1。編號為49的結點X的雙親編號為( )

A、24 B、25 C、23 D、無法確定

8. 設有一個無向圖G=(V,E)和G』=(V』,E』)如果G』為G的生成樹,則下面不正確的說法是( )

A、G』為G 的子圖 B、G』為G 的邊通分量

C、G』為G的極小連通子圖且V』=V D、G』為G的一個無環子圖

9. 用線性探測法查找閉散列表,可能要探測多個散列地址,這些位置上的鍵值( )

A、 一定都是同義詞 B、一定都不是同義詞

C、都相同 D、不一定都是同義詞

10. 二分查找要求被查找的表是( )

A、 鍵值有序的鏈接表 B、鏈接表但鍵值不一定有序

C、 鍵值有序的順序表 D、順序表但鍵值不一定有序

11. 當初始序列已經按鍵值有序,用直接插入演算法對其進行排序,需要循環的次數為( )

A、n2 B、nlog2n C、log2n D、n-1

12. 堆是一個鍵值序列{k1,k2,…, kn},對i=1,2,…,|_n/2_|,滿足( )

A、ki≤k2i≤k2i+1 B、ki<k2i+1<k2i

C、ki≤k2i且ki≤k2i+1(2i+1≤n) D、ki≤k2i 或ki≤k2i+1(2i+1≤n)

13.一個具有n個頂點的無向完全圖的邊數為( )

A、n(n+1)/2 B、n(n-1)/2 C、n(n-1) D、n(n+1)

14.在索引順序表中查找一個元素,可用的且最快的方法是( )

A、用順序查找法確定元素所在塊,再用順序查找法在相應塊中查找

B、用順序查找法確定元素所在塊,再用二分查找法在相應塊中查找

C、用二分查找法確定元素所在塊,再用順序查找法在相應塊中查找

D、用二分查找法確定元素所在塊,再用二分查找法在相應塊中查找

15.若某線性表中最常用的操作是在最後一個元素之後插入一個元素和刪除最後一個元素,則採用( )存儲方式最節省運算時間。

A、 單鏈表 B、雙鏈表

C、帶頭結點的雙循環鏈表D、容量足夠大的順序表

二、判斷題(每小題1分,共10分)

1.雙鏈表中至多隻有一個結點的後繼指針為空。( )

2.在循環隊列中,front指向隊列中第一個元素的前一位置,rear指向實際的隊尾元素,隊列為滿的條件是front=rear。( )

3.對鏈表進行插入和刪除操作時,不必移動結點。( )

4.棧可以作為實現程序設計語言過程調用時的一種數據結構。( )

5.在一個有向圖的拓樸序列中,若頂點a在頂點b之前,則圖中必有一條弧。( )i

6.對有向圖G,如果從任一頂點出發進行一次深度優先或廣度優先搜索就能訪問每個頂點,則該圖一定是完全圖。( )

7.「順序查找法」是指在順序表上進行查找的方法。( )

8.向二叉排序樹插入一個新結點時,新結點一定成為二叉排序樹的一個葉子結點。()

9.鍵值序列{A,C,D,E,F,E,F}是一個堆。

10.二路歸並時,被歸並的兩個子序列中的關鍵字個數一定要相等。()

三、填空題(每小題2分,共20分)

1.在帶有頭結點的單鏈表L中,若要刪除第一個結點,則需執行下列三條語句:________;L->next=U->next;free(U);

2.有一個長度為20的有序表採用二分查找方法進行查找,共有______個元素的查找長度為3。

3.採用冒泡排序對有n個記錄的表A按鍵值遞增排序,若L的初始狀態是按鍵值遞增,則排序過程中記錄的比較次數為_____。若A的初始狀態為遞減排列,則記錄的交換次數為_______。

4.在無頭結點的雙鏈表中,指針P所指結點是第一個結點的條件是______。

5.G為無向圖,如果從G的某個頂點出發,進行一次廣度優先搜索,即可訪問圖的每個頂點,則該圖一定是_____圖。

6.如果一個有向圖中沒有______,則該圖的全部頂點可能排成一個拓撲序列。

7.深度為8(根的層次號為1)的滿二叉樹有______個葉子結點。

8.將一棵有100個結點的完全二叉樹按層編號,則編號為49的結點X,其雙親PARENT(X)的編號為_______。

9.設某閉散列表HT未滿,散列函數H(KEY)為鍵值第一字母在字母表中的序號,處理沖突方法為線性探測法,請在下列演算法劃線處填上適當內容,以實現按鍵值第一字母的順序輸出閉散列表中所有鍵值的演算法。

void printword(keytype HT[m])

{ for(i=1;i<=26;i++)

{ j=i;

while(____________________)

{ if (____________________) printf(「datatype」,HT[j]);

j=(j+1)% m;

}

}

}

10.設有一個鏈隊,結點結構為data|next,front為隊頭指針,rear為隊尾指針,當執行入隊操作時需執行下列語句:

malloc(p);p->data=x; p->next=NULL;

________________;

________________;

四、簡答題:(每小題4分,共20分)

1. 對於一個有10000個結點的二叉樹,樹葉最多有多少個?最少有多少個?

2. 已知一棵二叉樹的中序序列和後序序列分別為: DBGEACHF和DGEBHFCA,則該二叉樹的前序序列是什麼?

3. 設有1000個無序的元素,需排出前10個最大(小)的元素,你認為採用哪種排序方法最快?為什麼?

4. 在KMP演算法中,已知模式串為ADABCADADA ,請寫出模式串的next[j]函數值。

5. 中序遍歷的遞歸演算法平均空間復雜度為多少?

五、 演算法設計題(每小題10分,共20分)

1. 試編寫一個演算法,判斷一給定的整型數組a[n]是不是一個堆。

2. 一棵二叉樹的繁茂度定義為各層結點數的最大值與樹的高度的乘積。試寫一高效演算法,求二叉樹的繁茂度。

參考答案

一、選擇題

1、D 2、C 3、D 4、C 5、D 6、D 7、A 8、B 9、D 10、C 11、D 12、C

13、B14、C15、D

二、判斷題

1. √ 2. × 3. √ 4. √ 5. × 6. × 7. × 8. √ 9. √ 10. ×

三、填空題

1.U=L - > next

2.4。

3.n-1、n(n-1)/2。

4.p - > prior = NULL。

5.連通

6.迴路或環

7.28-1 = 27 = 128

8.24

9.HT[j]!=NULL或HT[j]不為空、H(HT[j])=I

10.rear - > next = p、rear = p

四、簡答題:

1. 答: 最多是完全二叉樹的形態,即5000個葉子;最少是單支樹的形態,即1個葉子。

2.答:是:ABDEGCFH

3. 答:用錦標賽排序或堆排序很合適,因為不必等全部元素排完就能得到所需結果,

時間效率為O(nlog2n); 即O(1000log21000)=O(10000)

錦標賽排序的准確比較次數為:n-1+9log2n=999+9log21000=999+9×10=1089

堆排序的准確比較次數為:n-1+9log2n=999+9log21000=999+9×10=1089

若用冒泡排序也較快,最多耗費比較次數為(n-1+n-2+……+n-10)=10n-55=10000-55=9945(次)

4. 答: 0112112343

5. 答: 要考慮遞歸時佔用了棧空間,但遞歸次數最多不超過樹的高度,所以空間復雜度為O(log2n)

五、 演算法設計題

1.解:提示:堆的定義是:ki<k2i和K2i+1

void SortA(sqlist &A, int n)

{ if(n==0) return(0); //空表

if (a[1]<a[2])

{ for( i=1; i2; i++) if (a[i]>a[2*i]|| a[i]>a[2*i+1])return(-1);

return(minleap)

};

else

{ for( i=1; i<=n/2; i++) if (a[i]<a[2*i]|| a[i]<a[2*i+1])return(-1);

return(「maxleap」)

};

}

2. 要用層次遍歷以及隊列來處理,可以增設一個寬度計數器,在統計完每一層的結點個數之後,再從計數器中挑出最大值。

typedef struct {

BTNode node; int layer;

//layer是結點所在層數

} BTNRecord, r ;

int Width(Bitree T ){ //求樹寬

int count[ ]; //增開count向量,存放各層對應的結點數

InitQueue(Q); //隊列初始化,Q的元素為BTNRecord類型

EnQueue(Q,{T, 0}); //根結點入隊, 0 表示count[0],下標值

while(!QueueEmpty(Q))

{ DeQueue(Q, r); //結點出隊

count[r.layer]++; //出隊時再把結點對應層的計數器加

if(r.node->lchild) EnQueue(Q,{r.node->lchild, r.layer+1});

if(r.node->rchild) EnQueue(Q,{r.node->rchild, r.layer+1});

} //按層序入隊時要隨時標注結點所在層號

h=r.layer; //最後一個隊列元素所在層就是樹的高度

for(maxn=count[0], i=1; h; i++)

if(count[i]>maxn) maxn=count[i]; //求出哪一層結點數最多

return (h*

maxn)} // Width

⑦ PV,訪問和訪問者的區別

  1. 在GA上,每個頁面每次載入將被記為一次PV。舉例來說,一次用戶訪問頁面順序為: 頁面A->頁面B->頁面A,然後離開了你的站點,那這次用戶訪問(Visits)的PV總計為 3次。

    2.
    一次用戶訪問(Visits)(或會話(Session))是一系列瀏覽器和網站的相互作用。關閉瀏覽器或者在網站停留30分鍾而無任何操作將結束這次用戶訪問(Visits)。

    舉例來說:一個用戶訪問Google
    Store,設置了GA檢測的網站。當他訪問第二個網頁時接到了一個電話,他對著電話講了31分鍾,期間沒有任何對網站的操作,電話結束後,他在繼續在網站上進行他未完成的操作,GA將把這記為他的另一次訪問(Visits)或會話(Session)。注意:訪問(Visits)或會話(Session)是可以互相替換使用的兩個詞。

    3.
    訪問者(Visitor),一個訪問者(Visitor)通過有為用戶分配一個隨機的用戶ID並組合用戶首次訪問的時間戳構成的(Timestamp)GA
    Visitor
    Cookie來唯一標識,隨機的用戶ID和時間戳(Timestamp)的組合一個訪問者(Visitor),夠早了一個唯一的標識(ID)。

    4.
    總的來說PV(Pageviews)的數值大於訪問(Visits),訪問(Visits)大於訪問者(Visitors)。舉例來說1個用戶可以訪問2次網站共瀏覽了5個頁面。

    5. 瀏覽量(PageViews)和唯一身份瀏覽量(Unique PageViews)

    瀏覽量(PageViews):頁面累計被訪問的次數,不去重,對通過GA Tracking Code進行跟蹤的頁面進行計數。

    唯一身份瀏覽量(Unique PageViews):頁面累計被訪問的次數,對同一次訪問(Visits)去重。

    特別說明:刷新頁面將導致瀏覽量(PageViews)計數增加,但不會增加唯一身份瀏覽量(UniquePageViews)的計數。入鍋用戶訪問順序是頁面A->頁面B->頁面A,那麼頁面B的訪問將不會被計入B的統計結果中。

⑧ 誰知道怎樣設置網頁打開的順序

要是想使用起來方便,而且你經常要同時開很多頁面的話,建議你換一個傲遊瀏覽器吧,多頁面,速度快,切換方便靈活。
下載網站:http://www.maxthon.cn/

⑨ 網頁怎樣才能有順序打開

強烈建議用photoshop 切割成小塊,然後在網頁開發工具中用背景填充,不要把整個一大圖全都放到網頁上面。要把一整個大圖放到網頁上面去也是可以的,現在有很多網頁也是這樣做的,但是他們考慮的是他們的帶寬能夠滿足他們使用大圖的要求,所以他們可以用,你的網速慢的,當然不合適用了,好好學學photoshop切片。


ps里切片就是用來切割圖像用的。
切片分兩種,一種是用戶切片,就是用戶用切片工具在圖象上拉出來的切片,另一種就是衍生切片,是由用戶切片衍生出來的。
在切片名稱上名擊選編輯切片,會彈出來了個對話框,具體如下
切片類型:圖像,指這個切片輸出時會生成圖像,反之輸出時是空的
名稱:為切片定義一個名稱
URL:為切片指定一個鏈接地址
target:在哪個窗口中打開
x,y指切片的左上角的坐標,
w,h指切片的長度和寬度,你可在自己定義節的長和寬。
另外你還可以選切片工具在圖象上右擊選擇切割切片來分割圖像,可以按指定長寬,也指指定在長度和寬度上等分來分割。
一切做完後,選文件,保存為web所用文件格式,保存後在文件所在的地方有個叫image的文件夾,裡麵包含了所有輸出為圖像的切片。
注意一點的是,cmyk模式的圖片在網頁上是看不到的。
)網上面有很多這方面的資料的你去查查看啊

強烈建議你去網上下載一些現成的模板看看人家是怎麼切的。

網頁的網格不一定都用table表格標記,還可以用div等.非常好控制的。
多研究啊,玩的多了就知道了。
祝你好運!