雙鏈表建立 遍歷 按頻度排列

2021-10-05 02:48:40 字數 951 閱讀 7619

題目:

雙鏈表的每個節點除有prior(前驅指標),next(後繼指標),data(元素值)還增加了訪問頻度域(freq),在鍊錶被啟用前,其初始值均為0,每當鍊錶進行一次locate(l,x)運算時,令元素值為x的節點中的freq域值加1,並使此鍊錶中結點按照頻度非增的順序排列,同時最近訪問的結點排在頻度相同的結點前面。

#include

#include

typedef

struct dnodednode,

*dlinklist;

void

create_t

(dlinklist l)

;void

trans

(dlinklist l)

;void

locate

(dlinklist l,

int x)

;int

main()

return0;

}//尾插法建立雙鏈表

void

create_t

(dlinklist l)

}//遍歷

void

trans

(dlinklist l)

printf

("\n");

}void

locate

(dlinklist l,

int x)if(

!p)else

else

//查詢p結點的插入位置,從後往前找,直接插入方法

q=p->prior;

while

(q!=l && q->freq<=p->freq)

//找到插入位置

p->next=q->next;

q->next->prior=p;

p->prior=q;

q->next=p;

}}

雙鏈表按訪問頻度域freq的值的遞減序排列

問題及 檔名稱 table.cpp 作 者 單昕昕 完成日期 2016年3月23日 版 本 號 v1.0 問題描述 設有乙個雙鏈表,每個結點中除有piror,data,next三個域外,還有乙個訪問頻度域freq,在鍊錶被起用之前,其值均初始化為零.每當進行locatenode h,x 運算時,令元...

建立雙鏈表

c 實現如下 include include typedef struct dulnode dulnode dulnode create double linked list pheader next pre p p next pheader next return pheader int prin...

雙鏈表的建立

資料結構程式設計練習 三 功能1 完成雙向鍊錶的初始化。功能2 實現雙向鍊錶的輸入資料功能。功能3 實現雙向鍊錶求表長功能。功能4 刪除雙向鍊錶中第i個元素結點,需返回第i個是否存在的狀態,並返回刪除值。功能5 檢查雙向鍊錶是否對稱,輸入多個資料進行驗證。功能6 其他功能請自行編寫,驗收時講解給驗收...