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

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

C語言鏈表完整操作演示

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

本文實例為大家分享了C鏈表操作演示的具體代碼,供大家參考,具體內容如下

頭文件:link_0505.h

/* 鏈表演示 */ #ifndef __LINK_0505 #define __LINK_0505 typedef struct node{   int num;   struct node* p_next; }node; typedef struct  {   node head,tail; }link; //鏈表的初始化函數 void link_init(link *); //鏈表的清理函數 void link_deinit(link *); //判斷鏈表是否空的函數 int link_empty(link *); //判斷鏈表是否滿的函數 int link_full(link *); //統計有效數字個數的函數 int link_size(link *); //在最前邊插入數字的函數 int link_add_head(link *, int ); //在最后邊插入新的數字的函數 int link_append(link *, int ); //把數字按照順序插入到鏈表的函數 int link_insert(link *, int); //刪除最前面數字的函數 int link_remove_head(link *); //刪除最后一個有效數字 int link_remove_tail(link *); //刪除某個給定數字的函數 int link_remove(link *, int ); //獲得第一個有效數字的函數 int link_get_head(link *, int *); //獲得最后一個有效數字的函數 int link_get_tail(link *, int *); //獲得指定編號數字的函數 int link_get(link *, int *, int );  #endif 

實現代碼: link_0505.cpp

/* 鏈表演示 */ #include "stdlib.h" #include "link_0505.h" //鏈表的初始化函數 void link_init(link *p_link) {   p_link->head.p_next = &(p_link->tail); } //鏈表的清理函數 void link_deinit(link *p_link) {   while(p_link->head.p_next != &(p_link->tail))   {     node *p_first = &(p_link->head);     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     p_first->p_next = p_last;     free(p_mid);     p_mid = NULL;   } } //判斷鏈表是否空的函數 int link_empty(link *p_link) {   return p_link->head.p_next == &(p_link->tail); } //判斷鏈表是否滿的函數 int link_full(link *p_link) {   return 0; } //統計有效數字個數的函數 int link_size(link *p_link) {   int cnt = 0;   node *p_node = NULL;   for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_mid != &(p_link->tail))     {       cnt++;     }   }   return cnt; } //在最前邊插入數字的函數 int link_add_head(link *p_link, int num) {   node *p_temp = (node *)malloc(sizeof(node));   if (!p_temp)   {     return 0;   }      p_temp->num = num;   node *p_first = &(p_link->head);   node *p_mid = p_first->p_next;   node *p_last = p_mid->p_next;   p_first->p_next = p_temp;   p_temp->p_next = p_mid;    return 1; } //在最后邊插入新的數字的函數 int link_append(link *p_link, int num) {   node *p_tmp = (node *)malloc(sizeof(node));   node *p_node = NULL;   if (!p_tmp)   {     return 0;   }   p_tmp->num = num;   for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_mid == &(p_link->tail))     {       p_first->p_next = p_tmp;       p_tmp->p_next = p_mid;       break;     }   }   return 1; } //把數字按照順序插入到鏈表的函數 int link_insert(link *p_link, int num) {   node* p_temp = (node *)malloc(sizeof(node));   node* p_node = NULL;   if (!p_temp)   {     return 0;   }   p_temp->num = num;   p_temp->p_next = NULL;   for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_mid == &(p_link->tail) || p_mid->num > p_temp->num)     {       p_first->p_next = p_temp;       p_temp->p_next = p_mid;       break;     }   }   return 0; } //刪除最前面數字的函數 int link_remove_head(link *p_link) {   node *p_first = &(p_link->head);   node *p_mid = p_first->p_next;   node *p_last = p_mid->p_next;   if (p_link->head.p_next == &(p_link->tail))   {     return 0;   }   p_first->p_next = p_last;   free(p_mid);   p_mid = NULL; } //刪除最后一個有效數字 int link_remove_tail(link *p_link) {   node *p_node = NULL;   for (p_node = &(p_link->head);p_node !=&(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_last == &(p_link->tail))     {       p_first->p_next = p_last;       free(p_mid);       p_mid = NULL;       return 1;     }   }   return 0; } //刪除某個給定數字的函數 int link_remove(link *p_link, int num) {   node *p_node = NULL;   for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_mid != &(p_link->tail) && p_mid->num == num)     {       p_first->p_next = p_last;       free(p_mid);       p_mid = NULL;       return 1;     }   }   return 0; } //獲得第一個有效數字的函數 int link_get_head(link *p_link, int *p_num) {   if (p_link->head.p_next == &(p_link->tail))   {     return 0;   }   node *p_first = &(p_link->head);   node *p_mid = p_first->p_next;   node *p_last = p_mid->p_next;   p_first->p_next = p_last;   *p_num = p_mid->num;   return 1; } //獲得最后一個有效數字的函數 int link_get_tail(link *p_link, int *p_num) {   node *p_node = NULL;   for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_last == &(p_link->tail))     {       *p_num = p_mid->num;       return 1;     }   }   return 0; } //獲得指定編號數字的函數 int link_get(link *p_link, int *p_num, int num) {   int cnt = 0;   node *p_node = NULL;   for (p_node = &(p_link->head);p_node != &(p_link->tail);p_node = p_node->p_next)   {     node *p_first = p_node;     node *p_mid = p_first->p_next;     node *p_last = p_mid->p_next;     if (p_mid != &(p_link->tail) && cnt == num)     {       *p_num = p_mid->num;       return 1;     }     cnt++;   }   return 0; } 

測試函數:

/*  * 鏈表測試  * */ #include <stdio.h> #include "link_0505.h" int main() {   int size = 0, num = 0, val = 0;   link lnk = {0};   link_init(&lnk);   link_add_head(&lnk, 30);   link_add_head(&lnk, 20);   link_append(&lnk, 90);   link_append(&lnk, 100);   link_insert(&lnk, 50);   link_insert(&lnk, 60);   link_insert(&lnk, 40);   link_insert(&lnk, 80);   link_insert(&lnk, 70);   size = link_size(&lnk);   for (num = 0;num <= size - 1;num++) {     link_get(&lnk, &val, num);     printf("%d ", val);   }   printf("/n");   printf("------------------");   link_remove_head(&lnk);   link_remove_tail(&lnk);   link_remove(&lnk, 70);   size = link_size(&lnk);   for (num = 0;num <= size - 1;num++) {     link_get(&lnk, &val, num);     printf("%d ", val);   }   printf("/n");   link_get_head(&lnk, &val);   printf("最前面的數字是%d/n", val);   link_get_tail(&lnk, &val);   printf("最后面的數字是%d/n", val);   link_deinit(&lnk);   return 0; } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂av综合网| 国产一区二区在线免费| 韩国19禁主播vip福利视频| 国产有码一区二区| 91色中文字幕| 亚洲人午夜精品| 亚洲欧美999| 91在线观看免费| 亚洲精品福利在线观看| 久久精品国产久精国产一老狼| 中日韩美女免费视频网站在线观看| 国产深夜精品福利| 亚洲va国产va天堂va久久| 欧美激情一区二区三级高清视频| 91高潮精品免费porn| 成人久久久久久久| 欧洲精品在线视频| 国产精品观看在线亚洲人成网| 亚洲精品电影网站| 欧美做爰性生交视频| 久久久精品国产一区二区| 国产亚洲成精品久久| 欧美性猛交xxxx乱大交| 热久久这里只有| 久久精品国产2020观看福利| 久久99久久久久久久噜噜| 日韩综合视频在线观看| 欧美亚洲成人网| 亚洲欧洲日产国产网站| 美女啪啪无遮挡免费久久网站| 精品女同一区二区三区在线播放| 久久免费观看视频| 欧美成人国产va精品日本一级| 欧美激情喷水视频| 欧美日韩中文在线观看| 国产精品2018| 成人中文字幕+乱码+中文字幕| 国产精品美女主播| 国产一区二区动漫| 亚洲免费高清视频| 成人羞羞国产免费| 精品一区二区亚洲| 668精品在线视频| 成人福利网站在线观看11| 亚洲成人aaa| 国产精品欧美久久久| 欧美在线中文字幕| 色噜噜狠狠狠综合曰曰曰88av| 日韩视频第一页| 亚洲国产精品yw在线观看| 亚洲男人第一网站| 亚洲国产一区二区三区四区| 一道本无吗dⅴd在线播放一区| 91精品国产网站| 97人人做人人爱| 欧美大尺度电影在线观看| 欧美最猛性xxxxx(亚洲精品)| 国产成人精品一区二区| 欧美激情在线播放| 69**夜色精品国产69乱| 欧美大片免费观看| 亚洲精品国产精品久久清纯直播| 久久久久久久久久亚洲| 俺去啦;欧美日韩| 欧美激情欧美激情在线五月| 欧美精品做受xxx性少妇| 国产日韩中文在线| 欧美日韩国产影院| 国产精品久久99久久| 久久九九有精品国产23| 懂色av一区二区三区| 在线视频日本亚洲性| 欧美精品在线免费播放| 国产精品扒开腿做爽爽爽视频| 欧美大片在线看免费观看| 韩国国内大量揄拍精品视频| 久久精品久久久久久国产 免费| 亚洲欧美国产制服动漫| 国产精品福利小视频| 国产精品一区二区性色av| 97久久国产精品| 国产亚洲欧美日韩精品| 日韩精品在线电影| 亚洲国产精品久久久久秋霞蜜臀| 久久69精品久久久久久久电影好| 国内精品免费午夜毛片| 国产国语videosex另类| 日韩精品在线观| 日韩成人在线电影网| 精品自拍视频在线观看| 国产精品igao视频| 午夜精品蜜臀一区二区三区免费| 欧美极品欧美精品欧美视频| zzjj国产精品一区二区| 久久综合色88| 国产精品美女www| 久久免费观看视频| 色偷偷综合社区| 日韩亚洲精品视频| 91福利视频在线观看| 欧美第一黄色网| 精品美女国产在线| 欧美成人精品不卡视频在线观看| 在线观看日韩专区| 日韩精品亚洲精品| 久久夜精品香蕉| 日韩电影免费观看在线观看| 日韩美女在线观看一区| 91国产美女视频| 中文字幕精品网| 国产精品高潮呻吟久久av黑人| 黑人精品xxx一区| 精品国产精品自拍| 欧美日韩午夜视频在线观看| 国产精品狠色婷| 亚洲精品之草原avav久久| 日韩亚洲国产中文字幕| 欧美最近摘花xxxx摘花| 欧美日韩激情美女| 91av视频在线播放| 亚洲福利在线看| 国产美女扒开尿口久久久| 亚洲国产日韩精品在线| 久久久亚洲影院你懂的| 亚洲福利视频二区| 久久久久久久影院| 亚洲欧美中文日韩在线v日本| 亚洲伊人第一页| 欧美国产日韩精品| 亚洲国产精品成人va在线观看| 国产伦精品免费视频| 欧美性极品少妇精品网站| 午夜精品国产精品大乳美女| 成人欧美一区二区三区在线湿哒哒| 最新的欧美黄色| 欧美日韩国产中字| 日韩av片永久免费网站| 一区二区中文字幕| 韩国国内大量揄拍精品视频| 中文国产成人精品久久一| 欧美激情喷水视频| 亚洲国产一区二区三区在线观看| 在线视频一区二区| 国产日韩欧美成人| 这里只有精品久久| 91国产视频在线播放| 国产69精品久久久| 亚洲人成绝费网站色www| 中文字幕av一区| 欧美黑人一级爽快片淫片高清| 日韩欧美aⅴ综合网站发布| 久久久噜久噜久久综合| 日韩av中文在线| 欧美日本在线视频中文字字幕| 色综合久久中文字幕综合网小说| 日韩精品免费在线视频观看| 日韩亚洲精品视频| 中文字幕亚洲综合久久筱田步美| 国产97人人超碰caoprom| 亚洲大胆人体视频| 精品性高朝久久久久久久| 色综合影院在线| 欧美成人网在线| 动漫精品一区二区|