設(shè)計算法以判斷集合A是否是集合B的子集

一、題目:

假設(shè)遞增有序的帶頭結(jié)點的鏈表A、B分別表示一個集合,試設(shè)計算法以判斷集合A是否是集合B的子集,如是返回1,否則返回0。

二、思路:

1.A的值大于B的值,那就A的元素不變,B指向下一個元素,再比較;

2.A的值小于B的值,那就A指向下一個元素,B的元素不變,再比較;

3.A的值等于B的值,然后A,B同時指向下一個元素,而且n累加1;(此處的n最后用來與A鏈表的長度比較,若n=A鏈表的長度,則說明A的元素在B中全部都有,即A是B的子集)

三、思路的代碼:

public boolean  gather(Node a,Node b){
        Node A=a.next;          //指向鏈表A的第一個結(jié)點
        Node B=b.next;          //指向鏈表B的第一個結(jié)點
        int n=0;                //用來計數(shù)
        while(A!=null){ 
            while(B!=null){
                if(A.data<B.data){  //如果集合A的數(shù)值大于集合B中的數(shù)值
                    A=A.next;//A的指針指向下一個元素,B的指針不變,依舊是這個元素
                    break;//終止內(nèi)循環(huán),從外循環(huán)開始,A的在一個元素和B的本元素比較
                }
                if(A.data==B.data){//如果集合A的數(shù)值等于集合B中的數(shù)值
                    A=A.next;       //A的指針指向下一個元素
                    B=B.next;       //B的指針指向下一個元素
                    n++;            //當n的值等于A集合的元素個數(shù),說明A是B的子集
                    break;
                }
                if(A.data>B.data){  //如果集合A的數(shù)值小于集合B的數(shù)值
                    B=B.next;//那么B的指針指向下一個元素,A的指針依舊是指向本元素
                    if(A.next==null&&B.next==null){
                        if(A.data==B.data)//A和B均為最后一個元素且相等,則計數(shù)
                        n++;
                        A=A.next;   //如果A和B均為最后一個元素不相等,     則A指向空,讓外部循環(huán)停止
                    }
                    break;
                }
            }
        }
        if(n==List_Length(a))   //當n的值等于A集合的元素個數(shù),說明A是B的子集
            return true;
        else
            return false;
    }

四、完整程序的輸出結(jié)果:

①A為非空集合

A為非空集合

②A為空集合


A為空集
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內(nèi)容

  • 1 序 2016年6月25日夜,帝都,天下著大雨,拖著行李箱和同學在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,126評論 0 12
  • 在家里背政治,背一會兒,一扭身,發(fā)現(xiàn)奶奶坐著睡著了,哈哈哈,政治不愧是催眠神器,奶奶也受不了啊XD
    是溱溱啊閱讀 258評論 0 0
  • 文|青三盜 當下。 太多的假設(shè)。 “要是主政,也會是造福一方的青天” “要是富貴,也會捐款助人積德積善” “要是有...
    青三盜閱讀 276評論 0 0
  • 每天多看了幾分鐘書,跑了幾步路,學到了任何一丁點的新知識,我們都會沾沾自喜。正因為努力看不到,需要日積月累,我們就...
    三個太陽的雨林閱讀 154評論 0 0