原創 無限級可分類的分類表ADT的實現 1

2021-04-02 07:44:23 字數 1192 閱讀 1328

本文的目的是利用資料結構: 樹 ,來實現乙個分類表adt, 這個分類表adt可以實現無限級分類

本例程採用structs 架構, 符合mvc設計模式

資料庫採用sql server 資料庫

實現過程中,因為要連線資料庫,所以還要實現乙個dao物件

分類表adt的item物件對應資料庫中的分類表,作為整個程式中值傳遞的物件,它至少具有以下幾個屬性:

classid : 分類序號,唯一

classname: 分類名稱

parentid: 父類的分類序號

orderid:   排序序號

depth:   層數

child: 該分類的子類個數(包括所有的子孫後代)

分類表adt的偽**

public class infoclass(){

add(item);  //為分類表增加乙個分類

remove(index); // 根據索引刪除分類表中的乙個分類

removeall();  //刪除所有分類

move(index,action);    //移動分類表中的乙個分類,action 動作包括上移和下移兩個動作,如果該分類在所屬分類中,已經處於第乙個位置,則不能上移;如果處於最後乙個位置,則不能下移.

update();   //更新整個分類表(根據classname和parentid,重新計算每乙個分類orderid,depth,child

write();//顯示整個分類表

getchild(index);//根據索引值返回分類表的乙個分類(這是乙個樹物件)

dao物件的偽**:

public class newsclassdao{

add(item);  //為資料庫的分類表中增加乙個分類

remove(index); // 根據索引刪除資料庫分類表中的乙個分類

removeall();  //刪除資料庫中的所有分類

move(index,action);    //根據移動結果,更新資料庫相關表的記錄

update();   //更新整個資料庫中的分類表(根據classname和parentid,重新計算每乙個分類orderid,depth,child

樹物件的偽**:

public class menutree{

object item; //值傳遞的物件

arraylist list;//list中填充的是樹物件

mysql無限級分類表設計

create table tdb goods types type id smallint unsigned primary key auto increment,type name varchar 20 not null,parent id smallint unsigned not null d...

無限級分類的實現

在我們做 的時候,不管是新聞系統還是產品系統,或者是部落格,論壇等等,都少不了與分類打交道。有時候我們經常說分幾級分類,一般分2 3級,具體視情況而定,但是這樣的做法非常死板,不夠靈活,因為不是任何類別下的分類都有子類,孫類 為了能夠使分類靈活,我們經常採用的是無限級分類。無限級分類主要思路有兩種 ...

無限級分類表設計(三十七)

實際上我們在開發過程中,就拿商品類別來說,它還可以有更多的延伸,我們先來舉乙個簡單的例子,比如圖書,他的下面還可以分 文學等,在 下面還可以分為言情 科幻 等,還可以再往下一級一級繼續分,那麼這種分類就屬於無限極分類,那麼無限極分類錶該如何去設計,理論上說我們可以設計很多張表,但是隨著分類的逐步增多...