亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

字符串數據結構實現(鏈表方式)

2019-11-06 06:44:51
字體:
來源:轉載
供稿:網友

相較于數組方式的實現,C語言我采用了單鏈表的方式實現,C++采用了雙鏈表的方式。毫無疑問,雙鏈表的效率肯定是要遠高于單鏈表的。這次支持中文字符的操作,這個實現的思路是,在節點類中添加兩個成員變量,一個用來存放char字符,一個用來存放wchar_t字符。關于兩者的相互轉換及輸出請參考 C語言寬字符輸出和轉換。

C代碼實現下載 C++代碼實現下載 (備用下載地址 )

這里講一下字符串單鏈表實現的思路和雙鏈表實現的思路(如果不太懂單鏈表的實現和雙鏈表的實現請參考線性表之單鏈表和線性表之雙向鏈表)

毫無疑問,用鏈表的方式來存儲的時候,是一個個節點進行存儲的,所以一個節點內你可以存放char字符或者wchar_t字符,不想數組那樣,存放以及取出wchar_t字符是如此的困難。

單鏈表方式: 1.創建一個節點結構體,里面包含三個字段,分別是char、wchar_t、和Node*。

typedef struct _node{ char c; //窄字節 wchar_t w; //寬字節 _node* next;}Node,*PNode;

2.創建一個字符串結構體,用來管理字符節點,里面包含三個字段,分別是count(字符串長度)、headNode(頭節點)、endNode(尾節點)。

typedef struct _string{ int count; //字符個數 PNode headNode; //存放數據的節點(可以理解為一個String有一個頭節點,然后訪問數組的時候通過這個頭節點訪問) PNode endNode; //方便訪問最后一個節點}String,*PString;

3.第三步就是實現字符的增、刪、改、查操作,這個和單鏈表的實現基本相同,就是data域換成了char和wchar_t。

4.第四部就是添加進去后的字符,如何取出作為字符串輸出,那就是將所有節點的值串起來即可,保存到char*緩沖區中。

雙鏈表方式: 1.創建一個節點類,用來存放字符的值,里面包含四個成員變量,分別是c(char字符)、w(wchar_t字符)、next(后繼節點)、PRe(前驅節點)。

2.實現字符的增、刪、改、查,可以參考雙鏈表的實現代碼。

3.取出字符串也是將節點串起來。所以這一步的操作會比數組方式慢很多。

總結一下難點: 第一,如何存儲中文字符,一般判斷該字符的int值是否大于255即可判斷是否是中文字符,大于255就是中文字符,否則是英文字符。之后如果是wchar_t字符就存放在w域中,否則存放在c域中。記住,一個節點中,c和w一定要有一個為0,否則取出的時候不好判斷。

第二,如何取出中文字符,如果w值不為0,則可以取出,這個步驟還要細分,首先,先把wchar_t字符轉換為char[3]數組,為什么呢?因為一個wchar_t 占2個字符,所以轉換后,一個中文字符需要char[0],char[1]兩個字節來表示。

第三,如何將一個個節點內的字符串成串,創建一個char* buf的緩沖區,然后從頭節點開始遍歷,如果c不為0,則是英文字符,此時可以取出直接放進buf中,若w不為0,則是中文字符,此時可以取出進行窄字節的轉換后,再放進buf中,此時放進去的是兩個字節。以此類推,直到最后一個節點。

第四,這也是最重要的,如果沒有這一步,那么wchar_t的轉換以及輸出都會亂碼。那就是用setlocale函數設置字符集環境為中文。具體請參考 C語言寬字符輸出和轉換。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美精品在线播放| www.欧美精品| 7m精品福利视频导航| 伊人成人开心激情综合网| 欧美高清第一页| 日韩av一区在线| 欧美一级片一区| 日本伊人精品一区二区三区介绍| 一区二区三区国产在线观看| 久久久久久国产| 日本在线观看天堂男亚洲| 国产精品日韩精品| 国产精品网站视频| 亚洲欧美成人网| 欧美国产欧美亚洲国产日韩mv天天看完整| 精品久久香蕉国产线看观看gif| 91精品久久久久久久久中文字幕| 色偷偷噜噜噜亚洲男人的天堂| 日韩hd视频在线观看| 91精品久久久久久久久不口人| 97在线视频观看| 日日摸夜夜添一区| 亚洲精品一区中文字幕乱码| 成人黄色av网站| 欧美在线亚洲在线| 欧美激情一级欧美精品| 日韩在线观看精品| 78色国产精品| 久久久久在线观看| 一区二区成人av| 国产精品久久久久久av| 久久久精品一区二区| 欧美亚洲国产视频| 精品成人国产在线观看男人呻吟| 国产婷婷色综合av蜜臀av| 欧美大秀在线观看| 国产69精品久久久久9| 欧美大秀在线观看| 午夜免费日韩视频| 国产精品入口尤物| 亚洲v日韩v综合v精品v| 亚洲国产第一页| 欧美激情一区二区三区成人| 亚洲免费视频在线观看| 日韩欧美黄色动漫| 国产精品亚发布| 亚洲人成电影在线| 亚洲欧美在线免费| 97人洗澡人人免费公开视频碰碰碰| 97涩涩爰在线观看亚洲| 国产精品第一页在线| 亚洲а∨天堂久久精品9966| 日韩欧美在线免费观看| 亚洲国产91精品在线观看| 国产精品伦子伦免费视频| 成人在线小视频| 精品高清美女精品国产区| 国产精品久久一区主播| 久久精品99久久久香蕉| 国产精品香蕉在线观看| 亚洲字幕一区二区| 日韩精品在线观看一区二区| 久久99精品国产99久久6尤物| 中文字幕日韩有码| 一区二区三区www| 国产日韩在线看片| 亚洲精品久久久一区二区三区| 亚洲国产欧美在线成人app| 亚洲最大在线视频| 亚洲美腿欧美激情另类| 亚洲成av人片在线观看香蕉| 久久久久久午夜| 美女少妇精品视频| 亚洲在线观看视频网站| 亚洲第一网站男人都懂| 日本成人免费在线| 国产91在线播放九色快色| 日韩一中文字幕| 亚洲网在线观看| 亚洲欧美999| 午夜精品一区二区三区视频免费看| 韩国三级电影久久久久久| 亚洲欧美日韩一区在线| 成人午夜在线观看| 精品无人区太爽高潮在线播放| 精品少妇v888av| 欧美噜噜久久久xxx| 亚洲精品成人免费| 国产美女高潮久久白浆| 国产不卡在线观看| 欧美激情精品久久久久久变态| 久久久久久久久久久人体| 国产成人97精品免费看片| 亚洲性生活视频在线观看| 日韩欧美视频一区二区三区| 美乳少妇欧美精品| 日韩久久午夜影院| 欧美一级片一区| 国产丝袜一区视频在线观看| 欧美日韩成人网| 国产亚洲aⅴaaaaaa毛片| 日韩国产精品亚洲а∨天堂免| 欧美国产日本高清在线| 欧美精品18videosex性欧美| 欧美丝袜一区二区三区| 亚洲一区亚洲二区亚洲三区| 亚洲欧美另类自拍| 国产精品极品美女在线观看免费| 最近2019中文字幕一页二页| 国产美女直播视频一区| 91麻豆国产精品| 欧美亚洲视频在线看网址| 亚洲男人天堂视频| 九九久久久久久久久激情| 亚洲国产免费av| 亚洲女人天堂色在线7777| 欧美精品性视频| 欧美理论在线观看| 久久精品国产亚洲精品| 亚洲欧美日韩天堂| 成人日韩av在线| 成人激情春色网| 欧美日韩国产成人在线| 成人激情av在线| 国产成人一区二区三区| 日本高清视频一区| 精品久久久av| 亚洲天堂免费观看| 91高潮精品免费porn| 欧美激情国产日韩精品一区18| 国产日韩欧美另类| 神马久久桃色视频| 日本欧美在线视频| 亚洲一区二区三区四区视频| 超在线视频97| 日韩免费观看av| 久久免费视频在线观看| 97视频网站入口| 亚洲剧情一区二区| 亚洲色图欧美制服丝袜另类第一页| 亚洲网站在线看| 日韩美女毛茸茸| 国产69精品久久久久9999| 欧美www在线| 红桃av永久久久| 亚洲美女av黄| 久久人人爽亚洲精品天堂| 爱福利视频一区| 中文字幕日韩av电影| 亚洲深夜福利视频| 国产亚洲综合久久| 88国产精品欧美一区二区三区| 国产成人在线一区二区| 国产亚洲欧洲高清| 亚洲国产精品一区二区三区| 亚洲国产小视频在线观看| 亚洲欧美日韩综合| 日韩va亚洲va欧洲va国产| 欧美日韩高清区| 日韩经典中文字幕在线观看| 欧美精品videos性欧美| 欧美影院成年免费版| 欧美洲成人男女午夜视频| 国产国产精品人在线视|