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

首頁 > 編程 > C++ > 正文

數據結構與算法:單向鏈表實現與封裝

2020-05-23 13:22:57
字體:
來源:轉載
供稿:網友

概述

單向鏈表分為單向有頭鏈表和單線無頭鏈表,本文針對單向有頭鏈表使用C語言來實現并進行封裝。

實現

list_head.h文件

#ifndef _LIST_H_#define _LIST_H_typedef int datatype;#define SUCC#define MALLOC_FAIL 1#define NOHEADNODE 2#define INDEXFAIL 3#define LIST_EMPTY 4#define LIST_NOEMPTY 5#define FAIL  10typedef struct List_Node { datatype data; struct List_Node* pNext;}list;list*list_create();int list_insert_at(list* pHead, int i, datatype* pData);int list_order_insert(list* pHead, datatype* pData);int list_delete_at(list* pHead, int index);int list_delete(list* pHead, datatype* pData);int list_isempty(list* pHead);void list_display(list* pHead);void list_destory(list* pHead);#endif // !_LIST_H_

list_head.c文件

/********************************************************Copyright (C), 2016-2017,FileName: listAuthor: woniu201Description:單向有頭鏈表使用********************************************************/#include <stdio.h>#include "list_head.h"/************************************@ Brief: 創建鏈表頭@ Author: woniu201 @ Return:   ************************************/list* list_create(){ list* pNode = (list *)malloc(sizeof(list)); memset(pNode, 0, sizeof(list)); if (pNode == NULL) { return MALLOC_FAIL; } pNode->pNext = NULL; return pNode;}/************************************@ Brief: 按位置插入節點@ Author: woniu201@ Return:************************************/int list_insert_at(list* pHead, int i, datatype* pData){ int j = 0; if (pHead == NULL) { return NOHEADNODE; } list* pNode = pHead; if (i<0) { return INDEXFAIL; } while (j< i && pNode !=NULL) { pNode = pNode->pNext; j++; } if (pNode == NULL) { return INDEXFAIL; } else { list* newNode = (list*)malloc(sizeof(list)); if (newNode ==NULL) {  return MALLOC_FAIL; } memset(newNode, 0, sizeof(list)); newNode->data = *pData; pNode->pNext = newNode; } return SUCC;}/************************************@ Brief: 按順序插入節點@ Author: woniu201@ Return:************************************/int list_order_insert(list* pHead, datatype* pData){ if (pHead == NULL) { return NOHEADNODE; } list* pNewNode = (list*)malloc(sizeof(list)); if (pNewNode == NULL) { return MALLOC_FAIL; } memset(pNewNode, 0, sizeof(list)); pNewNode->data = *pData; list* pNode = pHead; if (pNode->pNext == NULL) { pNode->pNext = pNewNode; return SUCC; } while (pNode->pNext != NULL && pNode->pNext->data < *pData) { pNode = pNode->pNext; }  if (pNode->pNext)  { pNewNode->pNext = pNode->pNext; pNode->pNext = pNewNode;  } else { pNode->pNext = pNewNode; } return SUCC;}/************************************@ Brief: 按位置刪除節點@ Author: woniu201@ Return:************************************/int list_delete_at(list* pHead, int index){ int j = 0; if (pHead == NULL) { return NOHEADNODE; } if (index < 0) { return INDEXFAIL; } list* pCur = pHead; list* pNode = pHead; while (pCur->pNext) { pNode = pCur; pCur = pCur->pNext; if (index == j) {  break; } j++; } if (j< index) { printf("不存在該節點/n"); return INDEXFAIL; } else { if (pCur->pNext == NULL) {  pNode->pNext = NULL; } else {  pNode->pNext = pCur->pNext; } free(pCur); pCur = NULL; } return SUCC;}/************************************@ Brief: 按值刪除節點@ Author: woniu201@ Return:************************************/int list_delete(list* pHead, datatype* pData){ if (pHead == NULL) { return NOHEADNODE; } list* pCur = pHead; list* pNode = pHead; int bFind = 0; while (pCur->pNext) { pNode = pCur; pCur = pCur->pNext; if (pCur->data == *pData) {  bFind = 1;  break; } } if (!bFind) { printf("不存在該節點/n"); return INDEXFAIL; } else { if (pCur->pNext == NULL) {  pNode->pNext = NULL; } else {  pNode->pNext = pCur->pNext; } free(pCur); pCur = NULL; } return SUCC;}/************************************@ Brief: 判斷鏈表是否為空@ Author: woniu201@ Return:************************************/int list_isempty(list* pHead){ if (pHead->pNext == NULL) { return LIST_EMPTY; } else { return LIST_NOEMPTY; }}/************************************@ Brief: 遍歷打印鏈表@ Author: woniu201@ Return:************************************/void list_display(list* pHead){ if (list_isempty(pHead) == LIST_EMPTY) { printf("鏈表為空/n"); return FAIL; } list* pNode = pHead->pNext; while (pNode) { printf("%d/n", pNode->data); pNode = pNode->pNext; }}/************************************@ Brief: 釋放鏈表內存@ Author: woniu201@ Return:************************************/void  list_destory(list* pHead){ list* pCur = pHead; list* pNext = pHead->pNext; while (pNext) { pNext = pNext->pNext; free(pCur); pCur = NULL; pCur = pNext; }}

main.c 測試

#include <stdio.h>#include "list_head.h"int main(){ list* pHead = list_create(); int data1 = 1; int data2 = 3; int data3 = 2;// int ret = list_insert_at(pHead,0, &data1);// ret = list_insert_at(pHead, 1, &data2);// if (ret == INDEXFAIL)// {//  printf("添加索引位置錯誤/n");// } list_order_insert(pHead, &data2); list_order_insert(pHead, &data1); list_order_insert(pHead, &data3); list_delete_at(pHead, 3); int deleteData = 1; list_delete(pHead, &deleteData); list_display(pHead); list_destory(pHead); return 1;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区视频免费| 欧美高清视频在线| 欧美日韩成人在线视频| 成人国产精品色哟哟| 亚洲欧美中文日韩v在线观看| 夜夜狂射影院欧美极品| 国产精品视频专区| 亚洲人成欧美中文字幕| 亚洲一区亚洲二区| 秋霞av国产精品一区| 亚洲视频在线观看视频| 久久国产精品视频| 欧美一级片免费在线| 国产精品欧美亚洲777777| 色综合91久久精品中文字幕| 亚洲白拍色综合图区| 91高清视频免费观看| 国语自产精品视频在线看抢先版图片| 91久久久久久久久久| 欧美精品一区二区三区国产精品| 国产精品男人的天堂| 最近2019好看的中文字幕免费| 九九热这里只有精品免费看| 亚洲xxxxx电影| 精品视频在线播放色网色视频| 欧美一级大片在线观看| 国产一区二区激情| 欧美肥老妇视频| 亚洲第一区中文字幕| 91精品国产综合久久久久久蜜臀| 91亚洲精品久久久久久久久久久久| 欧美成人免费大片| 日韩性xxxx爱| 精品欧美激情精品一区| 国产精品国产三级国产aⅴ浪潮| 97热精品视频官网| 国产91九色视频| 欧美激情一区二区三区成人| 国内精品400部情侣激情| 欧美国产日韩一区二区三区| 九九热精品视频| 成人日韩在线电影| 91精品久久久久久久久青青| 九九综合九九综合| 国产一区二区三区毛片| 国产精品男人爽免费视频1| 国产精品爽爽爽| 欧美激情aaaa| 色综合91久久精品中文字幕| 日韩国产欧美精品一区二区三区| 亚洲精品久久久久中文字幕欢迎你| 日韩美女中文字幕| 亚洲欧美日韩第一区| 国产福利精品av综合导导航| 亚洲国产欧美久久| 日韩一级裸体免费视频| 九九热在线精品视频| 亚洲天堂男人的天堂| 欧美视频二区36p| 国产精品h在线观看| 中日韩美女免费视频网站在线观看| 国产欧美精品一区二区三区-老狼| 久久久av亚洲男天堂| 亚洲欧美激情四射在线日| 日韩欧美在线免费| 97精品国产aⅴ7777| 亚洲少妇中文在线| 日韩av资源在线播放| 91中文字幕在线观看| 久久91精品国产91久久久| 中文字幕亚洲国产| 国产精品自产拍高潮在线观看| 欧美剧在线观看| 欧美色欧美亚洲高清在线视频| 亚洲一区二区免费| 亚洲在线免费视频| 久久久影视精品| 亚洲欧美三级伦理| 成人黄在线观看| 欧美另类在线播放| 欧美精品九九久久| 日本精品性网站在线观看| 欧美精品videofree1080p| 中文精品99久久国产香蕉| www.亚洲一二| 国产精品自拍偷拍视频| 亚洲在线免费视频| 91精品视频在线看| 国产精品91久久久久久| 欧美一级淫片丝袜脚交| 欧美日本精品在线| 亚洲黄色片网站| 久久久久久久香蕉网| 欧美激情亚洲综合一区| 日韩精品免费观看| 日韩在线观看免费av| 精品久久久久久中文字幕一区奶水| 日韩www在线| 欧美另类在线播放| 精品自拍视频在线观看| 亚洲精品美女在线观看播放| 2019av中文字幕| xxxxxxxxx欧美| 色婷婷成人综合| 欧美国产在线电影| 91精品久久久久久久久久久久久| 久久精品91久久香蕉加勒比| zzijzzij亚洲日本成熟少妇| 成人天堂噜噜噜| 欧美另类交人妖| 国产成人精品一区二区| 国产成人激情视频| 国产在线视频不卡| 中文字幕欧美亚洲| 成人h视频在线观看播放| 日韩成人中文字幕在线观看| 国产在线观看91精品一区| 蜜臀久久99精品久久久久久宅男| 亚洲影院色无极综合| 久久精品国产清自在天天线| 亚洲精品97久久| 日韩成人在线网站| 亚洲视频在线观看免费| 国产精品久久久久高潮| 亚洲一区久久久| 亚洲欧美日韩精品久久| 日韩美女av在线免费观看| 久久久av网站| 亚洲男人的天堂网站| 欧美在线国产精品| 久久中文字幕国产| 精品久久久久久久久久久久| 一区国产精品视频| 亚洲精品福利视频| 高清一区二区三区日本久| 久久久国产视频91| 夜夜嗨av色综合久久久综合网| 最近2019年中文视频免费在线观看| 国产精品91在线| 欧美国产日韩一区二区| 欧美日韩高清区| 欧美第一淫aaasss性| 亚洲sss综合天堂久久| 亚洲国产成人精品女人久久久| 午夜精品久久17c| 91精品一区二区| 92福利视频午夜1000合集在线观看| 黑人巨大精品欧美一区免费视频| 91av中文字幕| 91免费看片在线| 亚洲精品一区中文字幕乱码| 国产精品丝袜久久久久久不卡| 亚洲日本中文字幕免费在线不卡| 欧美日韩精品二区| 亚洲成人在线视频播放| 亚洲欧美激情另类校园| 98午夜经典影视| 日韩最新av在线| 91免费视频国产| 国产专区欧美专区| 久久综合久中文字幕青草| 国产精品盗摄久久久| 国产精品影院在线观看| 国产成人综合一区二区三区|