資料結構 鏈棧 回文問題

2021-08-14 14:15:15 字數 1068 閱讀 3398

templatet>

struct stacknode

stacknode(t d,stacknode *link=null)

};

根據棧的特點,鏈棧類資料成員有棧頂指標,成員函式有構造、入棧、出棧、棧的判空與判滿、訪問棧頂元素、銷毀等操作。

template

class linkedstack

~linkedstack()

void push(const t&x)

bool pop(t &x)

bool gettop(t &x)const

bool isempty()const

void makeempty()

}};

class

paildrome //回文類

bool paildromejudge();//回文判別

void setstring(char *s)//重新設定字串

void pringstring() //將字元中str中的字元依次入棧

p=str;

while(!s.isempty())//當棧不為空是

p++;

}return

true;//返回時回文

}

(2)過濾空格字元操作

過濾空格字元的方法很多,可以將字串看成是線性表,掃瞄線性表,若遇到空格字元就刪除,這種方法優點是簡單、易於理解,缺點是元素前移較多、效率較低。當然也可以採用遇到空格字元自動跳過的方法。這裡採用的是每次只將掃瞄到的非空格字元前移的方法,效率較高。

a) 原理

p指標是用來掃瞄字串,s指標是用來指示p所指字元前移的位置,如下圖所示,p指向非空格字元,則將p指向字元前移到s所指位置。

b) 演算法實現

void palindrome::removeblankspace()//過濾空格字元

}*s='\0';

}

void main()

資料結構 棧 鏈棧

棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...

資料結構 鏈棧

編寫乙個程式,實現鏈棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化鏈棧s 2 判斷鏈棧s是否非空 3 依次進鏈棧元素a,b,c,d,e 4 判斷鏈棧s是否非空 5 輸出鏈棧長度 6 輸出從棧頂到棧底元素 7 輸出出鏈棧序列 8 判斷鏈棧s是否非空 9 釋放鏈棧。inclu...

資料結構 鏈棧

鏈式儲存的棧稱為鏈棧,結構如下圖 鏈棧無滿棧問題,空間可擴充,但有棧空問題,棧空的條件為top next null。進棧與入棧僅在棧頂進行,鏈式棧的棧頂在棧表頭。鏈棧的定義如下 struct stacknode class stack 建立頭結點 stack void push int item 入...