題目:
雙鏈表的每個節點除有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 其他功能請自行編寫,驗收時講解給驗收...