頭文件:link_0505.h
/*鏈表演示*/#ifndef__LINK_0505#define__LINK_0505typedefstructnode{intnum;structnode*p_next;}node;typedefstruct{nodehead,tail;}link;//鏈表的初始化函數voidlink_init(link*);//鏈表的清理函數voidlink_deinit(link*);//判斷鏈表是否空的函數intlink_empty(link*);//判斷鏈表是否滿的函數intlink_full(link*);//統計有效數字個數的函數intlink_size(link*);//在最前邊插入數字的函數intlink_add_head(link*,int);//在最后邊插入新的數字的函數intlink_append(link*,int);//把數字按照順序插入到鏈表的函數intlink_insert(link*,int);//刪除最前面數字的函數intlink_remove_head(link*);//刪除最后一個有效數字intlink_remove_tail(link*);//刪除某個給定數字的函數intlink_remove(link*,int);//獲得第一個有效數字的函數intlink_get_head(link*,int*);//獲得最后一個有效數字的函數intlink_get_tail(link*,int*);//獲得指定編號數字的函數intlink_get(link*,int*,int);#endif
實現代碼: link_0505.cpp
/*鏈表演示*/#include"stdlib.h"#include"link_0505.h"//鏈表的初始化函數voidlink_init(link*p_link){p_link->head.p_next=&(p_link->tail);}//鏈表的清理函數voidlink_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;}}//判斷鏈表是否空的函數intlink_empty(link*p_link){returnp_link->head.p_next==&(p_link->tail);}//判斷鏈表是否滿的函數intlink_full(link*p_link){return0;}//統計有效數字個數的函數intlink_size(link*p_link){intcnt=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++;}}returncnt;}//在最前邊插入數字的函數intlink_add_head(link*p_link,intnum){node*p_temp=(node*)malloc(sizeof(node));if(!p_temp){return0;}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;return1;}//在最后邊插入新的數字的函數intlink_append(link*p_link,intnum){node*p_tmp=(node*)malloc(sizeof(node));node*p_node=NULL;if(!p_tmp){return0;}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;}}return1;}//把數字按照順序插入到鏈表的函數intlink_insert(link*p_link,intnum){node*p_temp=(node*)malloc(sizeof(node));node*p_node=NULL;if(!p_temp){return0;}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;}}return0;}//刪除最前面數字的函數intlink_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)){return0;}p_first->p_next=p_last;free(p_mid);p_mid=NULL;}//刪除最后一個有效數字intlink_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;return1;}}return0;}//刪除某個給定數字的函數intlink_remove(link*p_link,intnum){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;return1;}}return0;}//獲得第一個有效數字的函數intlink_get_head(link*p_link,int*p_num){if(p_link->head.p_next==&(p_link->tail)){return0;}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;return1;}//獲得最后一個有效數字的函數intlink_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;return1;}}return0;}//獲得指定編號數字的函數intlink_get(link*p_link,int*p_num,intnum){intcnt=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;return1;}cnt++;}return0;}
測試函數:
/**鏈表測試**/#include<stdio.h>#include"link_0505.h"intmain(){intsize=0,num=0,val=0;linklnk={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);return0;}
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
【資料圖】最近這段時間總有小伙伴問小編VR黑玻璃材質參數怎么調是什么,小編為此在網上搜尋了一些有關于VR黑玻璃材質參數怎么調的知識送給大家,希望能解答各位小伙伴的疑惑。1、漫反射給黑色反射給一些,折射給到一半左右;2、漫反射給偏黑色,反射給一些,折射給全透明;3、折射煙霧顏色里面調成灰色,值不要太大,需要測試;4、表面漫射色給成烤漆玻璃顏色,反射給200到220左右,不要太高,勾選Fresnel,...
(相關資料圖)在我們的生活中,大改很多人都不知道人生4大喜事是什么意思,其實是非常簡單的,下面就是小編搜索到的人生4大喜事相關的一些知識,一起了解下吧!1、人生第一大喜便是“洞房花燭”夜。洞房者,新房之意,當然也有不少高人曲解了這個詞兒,這里權當是婚房吧。古人把結婚之喜稱作洞房花燭,新人行過傳統禮儀之后,會被送進充滿喜慶的婚房里,房間里點著兩支紅色的喜燭,彌漫著誘人的香氣,一對有情人終于走到了愛情...
機構賬戶開戶要求是什么?機構賬戶開戶要求如下:1、法人開戶時需填寫《機構客戶證券交易協議書》和《客戶交易結算資金第三方存管協議》。2、如果機構投資者從未辦理過法人開戶的,需填寫《機構證券賬戶注冊申請表》。3、如果機構投資者是投資代辦股份市場的,需填寫《股份轉讓風險揭示書》。4、根據證券開戶標準規定,中國證券登記結算公司上海分公司收取證券開戶費200元/戶,中國證券登記結算公司深圳分公司收取證券開戶...