999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JSP實(shí)現(xiàn)基于中值排序基數(shù)法的BBS樹狀結(jié)構(gòu)

2008-12-31 00:00:00袁安翠王公強(qiáng)
電腦知識(shí)與技術(shù) 2008年29期

摘要:用JSP實(shí)現(xiàn)基于中值排序基數(shù)法的BBS樹狀結(jié)構(gòu),給出數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以及具體的算法實(shí)現(xiàn)。

關(guān)鍵詞: JSP;中值排序基數(shù)法;BBS

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)29-0409-02

Using JSP Based in the Sort of the Middle Value of the Base of the Tree Structure of the BBS

YUAN An-cui, WANG Gong-qiang

(Rizhao Polytechnic,Rizhao 276826,China)

Abstract: Using JSP based in the sort of the middle value of the base of the tree structure of the BBS, given the data structure and the specific design of the algorithm.

Key words: JSP; the sort of the middle value of the base; BBS

1 引言

JSP是當(dāng)今開發(fā)交互式網(wǎng)站的主流技術(shù)之一,也是實(shí)現(xiàn)BBS的首選技術(shù)之一。在BBS的實(shí)現(xiàn)中,很多人會(huì)選擇樹狀展現(xiàn),而實(shí)現(xiàn)樹狀展現(xiàn)比較簡單是用遞歸算法。當(dāng)然,遞歸是一個(gè)可行的辦法,但對(duì)于BBS來說,這樣做勢必要進(jìn)行大量的Sql查詢,雖然可以使用存儲(chǔ)過程來做,但要從根本上加快速度,則應(yīng)該考慮更快的算法。本文中使用的中值排序基數(shù)法是一種徹底屏棄遞歸的實(shí)現(xiàn)樹狀結(jié)構(gòu)的算法。

2 算法思想

2.1 數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)

在數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)中,表中的字段依次為:帖子id字段,記錄父貼id的冗余字段pid,記錄根id的rootid字段,記錄帖子標(biāo)題的title字段,記錄帖子內(nèi)容的cont字段,用于記錄回復(fù)的深度的deep字段,排序基數(shù)字段ordernum,標(biāo)識(shí)是否為葉子節(jié)點(diǎn)的字段isleaf。

2.2 具體實(shí)現(xiàn)算法

數(shù)據(jù)表的各字段中id、rootid、deep均為int型,ordernum為float型。根貼id自動(dòng)生成為1,rootid為0,deep為0,ordernum為0;在回復(fù)同一根貼的貼子時(shí),id順序自動(dòng)生成,rootid取根貼的id,deep取其父貼的deep加1,ordernum取其父貼與其父貼的下一貼兩者ordernum的平均數(shù)(貼子按ordernum字段排序),對(duì)于根貼的第一個(gè)回帖,ordernum字段要取一個(gè)足夠大的2的冪的數(shù)(如65536=216,為了簡單起見,例子中取64),對(duì)于最后一貼的回帖,ordernum取父貼的ordernum加上一個(gè)2的冪。下面舉例說明(只列出相關(guān)字段):

例:id rootiddeepordernum

1000

211 64

在此基礎(chǔ)上回復(fù)第1貼(即id為1的帖子),則新貼id自動(dòng)生成為3,ordernum取第1、2基數(shù)的中值即(0+64)/2即32,deep取其父貼的deep加1,即為1。

排序后結(jié)果為:

id rootiddeepordernum

1000

311 32

211 64

回復(fù)第3貼,ordernum取3、2的基數(shù)中值即(32+64)/2,deep取其父貼的deep加1,即為2,排序后結(jié)果為:

id rootiddeepordernum

1000

311 32

412 48

211 64

這樣排序基數(shù)ordernum與回復(fù)深度deep一起就實(shí)現(xiàn)了如下的樹狀結(jié)構(gòu):

id

1

——3

————4

——2

3 實(shí)現(xiàn)

由于中值排序基數(shù)算法主要體現(xiàn)在帖子的回復(fù)中,因此這里只給出對(duì)回復(fù)帖子進(jìn)行處理的實(shí)現(xiàn),通過request獲得的參數(shù)均為添加回復(fù)頁面?zhèn)鬟f過來的參數(shù)。數(shù)據(jù)庫以Mysql為例。

int id = Integer.ParsInt(request.getParameter(‘id’));//被回復(fù)帖子的// id,即新帖的pid

int rootid = Integer.ParsInt(request.getParameter(‘rootid’));

String title = request.getParameter(‘title’);

String cont = request.getParameter(‘cont’);

Class.forname(“com.mysql.jdbc.Driver”);

String url = ”jdbc:mysql://localhost/bbs?user=rootpassword=root”;

Connection conn = DriverManager.getConnection(url);

Statement stmt = conn.createStatement();

ResultSet rs = stmt.excuteQuery(“select * from article where rootid =” + rootid + “order by ordernum asc);

ordernum1 = 0;

ordernum2 = 0;

int deep = 0;

while (rs.next()){

if(rs.getInt(“id”) == id ){

ordernum1 = rs.getInt(“ordernum”);

deep = rs.getInt(“deep”) + 1;

rs.next();

ordernum2 = rs.getInt(“ordernum”);

break;

}}

int ordernum = (ordernum1 + ordernum2)/2;

String sql = “insert into article values(1,?,?,?,?,?,?,0)”;

PreparedStatement pstmt = conn.PrepareStatement(sql);

pstmt.setInt(1,id);

pstmt.setInt(2,rootid);

pstmt.setString(3,title);

pstmt.setString(4,cont);

pstmt.setInt(5,deep);

pstmt. setInt(6,ordernum);

pstmt.executeUpdate();

stmt.excuteUpdate(“update article set isleaf = 1 where id = ”+ id);

//將新帖的父貼設(shè)置成非葉子節(jié)點(diǎn)

stmt.close();

pstmt.close();

conn.close();

4 總結(jié)

本文給出了jsp實(shí)現(xiàn)中值排序基數(shù)法,從而實(shí)現(xiàn)BBS的樹狀結(jié)構(gòu),是一種效率比較高的實(shí)現(xiàn)方法。但是實(shí)現(xiàn)并不完美,沒有考慮錯(cuò)誤處理以及數(shù)據(jù)庫訪問的同步等問題,在實(shí)際的應(yīng)用中應(yīng)該加以完善。

參考文獻(xiàn):

[1] 廖彥華.基于Jsp技術(shù)的網(wǎng)上購物系統(tǒng)[J].電腦知識(shí)與技術(shù):學(xué)術(shù)交流,2007(12):1276-1279.

[2] 陳欣,繆天鵬.基于JSP動(dòng)態(tài)網(wǎng)站的建設(shè)[J].計(jì)算機(jī)與數(shù)字工程,2004,32(4):94-96.

[3] Vikram Vaswani.MySQL完全手冊[M].北京:電子工業(yè)出版社,2004.

主站蜘蛛池模板: 国产97公开成人免费视频| 亚国产欧美在线人成| 一级毛片无毒不卡直接观看| 久久精品娱乐亚洲领先| 青草娱乐极品免费视频| 亚洲午夜18| 国产波多野结衣中文在线播放 | 国产 日韩 欧美 第二页| 国产欧美日韩一区二区视频在线| 日韩免费无码人妻系列| 亚洲欧美日韩视频一区| 自拍偷拍欧美| 国产精品3p视频| 国产欧美精品午夜在线播放| 97人妻精品专区久久久久| A级毛片无码久久精品免费| 国产精品偷伦在线观看| 久久香蕉国产线看观看式| 日本a∨在线观看| 亚洲国产中文综合专区在| 亚洲A∨无码精品午夜在线观看| 色成人综合| 久久黄色一级视频| 狼友视频一区二区三区| 午夜限制老子影院888| 日韩a在线观看免费观看| 福利在线免费视频| 日本妇乱子伦视频| 国产一区自拍视频| 免费观看国产小粉嫩喷水 | 久久综合色天堂av| 亚洲视频二| 在线亚洲天堂| 18禁黄无遮挡网站| 亚洲成人黄色在线观看| 中国丰满人妻无码束缚啪啪| 色哟哟国产成人精品| 91综合色区亚洲熟妇p| www.亚洲一区二区三区| 日韩资源站| 精品国产一区91在线| 伊人成人在线视频| 精品伊人久久久大香线蕉欧美| 国产成人高清精品免费5388| 亚洲综合亚洲国产尤物| 九九热这里只有国产精品| 99热这里只有精品免费国产| 国产流白浆视频| 国产玖玖视频| 欧美日本在线观看| 久久semm亚洲国产| 91在线播放国产| 美女免费精品高清毛片在线视| 亚洲日韩国产精品无码专区| 国产精品xxx| 刘亦菲一区二区在线观看| 欧美a级在线| 国产精品lululu在线观看| 三上悠亚一区二区| 波多野结衣视频一区二区 | 麻豆国产精品视频| 精品久久人人爽人人玩人人妻| 久青草网站| 国产精品私拍在线爆乳| 中文字幕久久波多野结衣 | 欧美成人h精品网站| 久久国产亚洲偷自| 色屁屁一区二区三区视频国产| 97国产精品视频自在拍| 中文国产成人精品久久一| 国产永久免费视频m3u8| 中文天堂在线视频| 日韩在线影院| 网友自拍视频精品区| 最新日本中文字幕| 91精品国产自产在线老师啪l| 91美女视频在线观看| 欧美色综合网站| 亚洲爱婷婷色69堂| 国产福利免费在线观看| 国产精品天干天干在线观看| 久草视频福利在线观看|