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

首頁 > 編程 > C > 正文

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

2020-01-26 13:35:50
字體:
來源:轉載
供稿:網友

概述

單向鏈表分為單向有頭鏈表和單線無頭鏈表,本文針對單向有頭鏈表使用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;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本精品在线视频| 国产精品日韩欧美| 国产一区二区三区在线| 日本久久91av| 91久久精品国产91久久性色| 欧美国产视频一区二区| 欧美性猛交xxxx富婆| 日韩一区二区av| 91av在线不卡| 欧美特黄级在线| 亚洲精品国产精品自产a区红杏吧| 日本人成精品视频在线| 成人午夜黄色影院| 亚洲深夜福利网站| 亚洲 日韩 国产第一| 欧美孕妇毛茸茸xxxx| 在线精品91av| 国模视频一区二区三区| 亚洲男人天堂九九视频| 中文字幕久久精品| 欧洲精品在线视频| 欧美电影在线观看网站| xxxxx成人.com| 国产91网红主播在线观看| 欧美成人全部免费| 成人在线中文字幕| 日本精品视频在线观看| 日本久久久久久| 欧美性生活大片免费观看网址| 狠狠爱在线视频一区| 久久人人97超碰精品888| 亚洲电影免费在线观看| 最近2019免费中文字幕视频三| 国模精品一区二区三区色天香| 欧美成人精品一区二区| 色先锋资源久久综合5566| 欧美黑人性视频| 亚洲女成人图区| 国产日韩精品一区二区| 97av视频在线| 国产精品一区二区三区久久| 国产精品久久久久久久久久小说| 在线观看不卡av| 亚洲精品色婷婷福利天堂| 亚洲精品欧美日韩专区| 久久久精品免费视频| 欧美亚洲成人精品| 欧美日韩加勒比精品一区| 日韩在线激情视频| 国产91色在线|免| 中文字幕少妇一区二区三区| 久久久久久久网站| 欧美中文字幕在线视频| 亚洲一区制服诱惑| 国产欧美日韩中文| 久久精品免费播放| 91影视免费在线观看| 午夜精品一区二区三区在线视| 欧美激情免费观看| 国产精品美女视频网站| 日韩在线播放av| 成人做爽爽免费视频| 不卡av日日日| 日韩免费看的电影电视剧大全| 成人黄色片在线| 中文字幕免费国产精品| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲一区二区三区在线免费观看| 久久亚洲影音av资源网| 国产精品久久久久久久久久ktv| 国产精品国语对白| 91精品国产综合久久久久久久久| 精品无人国产偷自产在线| 欧美国产高跟鞋裸体秀xxxhd| 亚洲人成在线观看| 国产精品网址在线| 中文字幕一区日韩电影| 日韩av免费看网站| 91精品视频免费观看| 黑人精品xxx一区| 亚洲日本欧美日韩高观看| 久久亚洲影音av资源网| 国内外成人免费激情在线视频网站| 日韩欧美在线视频日韩欧美在线视频| 久久久久久av| 深夜精品寂寞黄网站在线观看| 91精品国产色综合久久不卡98口| 日韩在线视频国产| www.亚洲成人| 日韩欧美高清在线视频| 热re99久久精品国产66热| 97欧美精品一区二区三区| 亚洲精品日韩激情在线电影| 欧美日产国产成人免费图片| 国产91亚洲精品| 久久在线视频在线| 欧美怡红院视频一区二区三区| 欧美性xxxxx极品| 久久精品国产2020观看福利| 国产中文字幕日韩| 国产综合在线观看视频| 日韩亚洲精品视频| 久久久91精品国产| 一区二区亚洲欧洲国产日韩| 精品成人国产在线观看男人呻吟| 欧美精品手机在线| 亚洲一区二区国产| 欧美美女操人视频| 91久久中文字幕| 91欧美视频网站| 中文字幕成人在线| 欧美三级xxx| 国产成人精品久久二区二区91| 国产精品影院在线观看| 国产成人精品亚洲精品| 正在播放欧美一区| 久久69精品久久久久久国产越南| 91精品国产综合久久香蕉最新版| 久久91亚洲精品中文字幕奶水| 色综合久久天天综线观看| 欧美黑人一级爽快片淫片高清| 欧美国产激情18| 亚洲黄在线观看| 国产亚洲精品美女久久久久| 欧美另类极品videosbest最新版本| 亚洲永久在线观看| 欧美成人午夜免费视在线看片| 国产美女主播一区| 日韩在线观看网址| 国产亚洲精品久久久优势| 欧洲亚洲免费在线| 久久av.com| 欧美国产极速在线| 1769国产精品| 日韩精品中文字幕视频在线| 久久视频在线免费观看| 日韩中文字幕国产| 亚洲美女av在线| 国产成人精品在线观看| 激情久久av一区av二区av三区| 国内外成人免费激情在线视频| 亚洲a中文字幕| 亚洲精品美女在线观看播放| 欧美性xxxx| 欧美高清性猛交| 国产精品久久久久久久久| 日韩在线中文字幕| 久久国产精品影视| 精品国产一区二区三区久久狼黑人| 国产精品成人观看视频国产奇米| 久久久久久久电影一区| 欧美一级淫片aaaaaaa视频| 亚洲电影天堂av| 国产视频精品xxxx| 日韩中文在线视频| 国内揄拍国内精品| 欧美精品日韩www.p站| 中文字幕日韩欧美精品在线观看| 日韩av免费网站| 久久精品国产欧美亚洲人人爽| y97精品国产97久久久久久| 成人精品久久一区二区三区| 亚洲国产天堂久久国产91| 亚洲人成毛片在线播放|