老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

鏈表結(jié)構(gòu)體查找c語(yǔ)言函數(shù) 鏈表的查找

C語(yǔ)言中如何實(shí)現(xiàn)對(duì)結(jié)構(gòu)體的查找以及輸出?

C語(yǔ)言的結(jié)構(gòu)體是一組數(shù)據(jù)的組合,并不是簡(jiǎn)單的單一類(lèi)型。所以在查找和輸出的時(shí)候,均不能直接操作,而是要進(jìn)行變通。

成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司,提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,是專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

1 查找。

對(duì)于以某一項(xiàng)為關(guān)鍵字進(jìn)行查找時(shí),比如在結(jié)構(gòu)體中有int型的成員a,要查找a為100的結(jié)構(gòu)體變量,這時(shí)需要遍歷每個(gè)結(jié)構(gòu)體(數(shù)組、鏈表、或者其它任意形式),對(duì)每個(gè)元素的成員a值進(jìn)行比較,符合的則表示查找成功。

對(duì)于結(jié)構(gòu)體中元素較多,同時(shí)要對(duì)整個(gè)結(jié)構(gòu)體每個(gè)元素都匹配才算查找到的特殊情況,可以使用memcmp的方式,整體進(jìn)行比較,以減少代碼量。不過(guò)這種情況較為少見(jiàn),不過(guò)多描述。

2 輸出。

對(duì)于結(jié)構(gòu)體的輸出,其實(shí)就是對(duì)其每一項(xiàng),或者若干項(xiàng)成員變量的輸出。

所以可以使用基本的輸出函數(shù),對(duì)每一項(xiàng)單獨(dú)輸出,輸出中為了方便閱讀,可以加一些說(shuō)明文字。

如果對(duì)結(jié)構(gòu)體輸出有多處調(diào)用的需求,可以在將該功能封裝為函數(shù),供各個(gè)需要的函數(shù)調(diào)用。這樣的好處是,當(dāng)結(jié)構(gòu)體的成員出現(xiàn)變化,或者結(jié)構(gòu)體輸出要求更改時(shí),修改一處代碼即可完成所有的輸出修改,實(shí)現(xiàn)易于維護(hù)的效果。

C語(yǔ)言: 鏈表查詢(xún)

/*

typedef struct list_node

{

Eleme data;

struct list_node *next;

}List_Node,*plist_node;

*/

#include "stdio.h"

#include "malloc.h"

#include "stdlib.h"

#include "time.h"

#include "my_data.h"

plist_node Creat(void)/*鏈表創(chuàng)建函數(shù)*/

{

int len,val;//定義列表長(zhǎng)度,存放節(jié)點(diǎn)數(shù)據(jù)

plist_node phead = (plist_node)malloc(sizeof(List_Node));//創(chuàng)建分配一個(gè)頭結(jié)點(diǎn)數(shù)據(jù)

if(phead == NULL)

{

printf("空間分配失敗啊!");

exit(-1);

}

plist_node pTail = phead;// 鏈表的末尾節(jié)點(diǎn),初始指向頭節(jié)點(diǎn)

pTail-next = NULL;// 最后一個(gè)節(jié)點(diǎn)指針置為空

printf("輸入節(jié)點(diǎn)個(gè)數(shù):");

scanf("%d",len);

for(int i=0;ilen;i++)

{

plist_node pNew = (plist_node)malloc(sizeof(list_node)); //分配一個(gè)新節(jié)點(diǎn)

if (pNew == NULL) {

printf("分配新節(jié)點(diǎn)失敗\n");

exit(-1);

}

printf("請(qǐng)輸入第 %d 個(gè)節(jié)點(diǎn)的數(shù)據(jù):", i + 1);

scanf("%d", val); //輸入鏈表節(jié)點(diǎn)的數(shù)據(jù)

pNew-data = val; //把數(shù)據(jù)賦值給節(jié)點(diǎn)數(shù)據(jù)域

pTail-next = pNew; //末尾節(jié)點(diǎn)指針指向下一個(gè)新節(jié)點(diǎn)

pNew-next = NULL; //新節(jié)點(diǎn)指針指向?yàn)榭?/p>

pTail = pNew; //將新節(jié)點(diǎn)復(fù)制給末尾節(jié)點(diǎn)

}

printf("鏈表創(chuàng)建成功!");

return phead;//返回頭結(jié)點(diǎn)

}

void Trave(plist_node List)/*鏈表遍歷函數(shù)*/

{

plist_node Pn = List-next;

printf("遍歷鏈表的值為:");

if( Pn == NULL)

printf("鏈表為空!");

while( Pn != NULL)

{

printf("%d \t",Pn-data);

Pn =Pn-next;

}

printf("\n");

}

plist_node Find(plist_node List)/*鏈表查詢(xún)函數(shù)*/

{

plist_node P = List-next;

int num=0,val=0; //num 為節(jié)點(diǎn)位置,val為查詢(xún)到的值

printf("請(qǐng)輸入要查詢(xún)的值:");

scanf("%d",val);

while(P!= NULL P-data!=val)

{

P=P-next;

++num;

}

if(P!=NULL)

printf("找到的節(jié)點(diǎn)為:%d",num+1);

else

printf("找不到該節(jié)點(diǎn)!");

printf("\n");

return P;

}

void Inser(plist_node List,int pos,int val)//鏈表的插入操作,在 pos 號(hào)節(jié)點(diǎn)處插入數(shù)據(jù) val

{

int pin = 0 ;

plist_node P = List;

while(P != NULL pin pos-1)

{

P = P-next;

++pin;

}

plist_node tmp = (plist_node)malloc(sizeof(list_node));//臨時(shí)節(jié)點(diǎn),用于存儲(chǔ)要插入的數(shù)據(jù)

if( tmp == NULL)

{

printf("內(nèi)存分配失敗!");

exit(-1);

}

//開(kāi)始插入節(jié)點(diǎn)

tmp-data = val;

tmp-next = P-next;

P-next = tmp;

}

void Deletelist(plist_node List,int pos)/*鏈表元素刪除函數(shù)*/

{//刪除第pos個(gè)節(jié)點(diǎn)

int pin=0;

plist_node tmp;

plist_node P = List;

while(P != NULL pinpos-1)

{

P = P-next;

++pin;

}

tmp = P-next;

P-next = tmp-next;

P-next = tmp-next;

free(tmp);

tmp=NULL;

}

void UI(int num)

{

switch(num)

{

case 11:

system("cls");

printf("**********首頁(yè)*********\n");

printf("\n\t*1.創(chuàng)建鏈表\n");

printf("\t*2.查看鏈表\n");

printf("\t*3.查詢(xún)鏈表\n");

printf("\t*4.插入節(jié)點(diǎn)\n");

printf("\t*5.刪除節(jié)點(diǎn)\n");

printf("\t*0.返回首頁(yè)\n");

printf("\n**********首頁(yè)*********\n");

break;

case 1:

system("cls");

printf("****\t*****創(chuàng)建*********\n");

break;

case 2:

system("cls");

printf("****\t*****查看*********\n");

break;

case 3:

system("cls");

printf("****\t*****查找*********\n");

break;

case 4:

system("cls");

printf("****\t*****插入*********\n");

break;

case 5:

system("cls");

printf("****\t*****刪除*********\n");

break;

case 0:

system("cls");

printf("****\t**************\n");

break;

default:

break;

}

}

C語(yǔ)言鏈表的建立,輸出,長(zhǎng)度,元素的查找,刪除,插入,主函數(shù)不知道怎么寫(xiě)!!!要可以編譯的!!!謝謝

你照下面這個(gè) 去寫(xiě):下面這個(gè)是順序表的基本操作:void main()

{

char a[5]={'a','b','c','d','e'};

int n=5;

char f='f',b='a',e;

SqList sq;

InitList(sq); //初始化表

CreateList(sq,a,n); //傳入數(shù)據(jù)

DispList(sq); //輸出表

printf("sq.length=%d\n",ListLength(sq)); //輸出表長(zhǎng)

if(ListEmpty(sq)) //判斷是否為空表

printf("sq是空表\n");

else

printf("sq不是空表\n");

printf("a在第%d位\n",LocateElem(sq,b)); //按元素值查找

ListInsElem(sq,f,4); //在第4個(gè)位置上插入f元素

DispList(sq); //輸出表

printf("\n");

DelElem(sq,3,e); //刪除第三個(gè)元素

DispList(sq); //輸出表

}

其他函數(shù)和鏈表結(jié)構(gòu)體定義包在頭文件中。


當(dāng)前標(biāo)題:鏈表結(jié)構(gòu)體查找c語(yǔ)言函數(shù) 鏈表的查找
文章鏈接:http://www.xueling.net.cn/article/ddscieg.html

其他資訊

在線咨詢(xún)
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲91在线视频 | 国产良心大作白丝精厕 | きょこんきょうしゃ在线 | 欧美中文在线观看 | jizzjizzjizz亚洲熟妇无码 | 欧洲尺码日本尺码专线图片 | 日日日夜夜操 | 欧美一区二区三区久久综合 | 成人免费在线网 | 色综合久久久久久久久久久 | 新四虎影院| 老司机AⅤ在线精品导航 | 久久精品亚洲酒店 | 免费黄网站观看 | 亚洲国产欧美在线人成最新 | 夜色资源站www国产在线观看 | 一本色道无码道在线观看 | 日韩av无码一区二区三区不卡毛片 | 久久青青草原一区二区 | 久久精品国产2020 | 丰满美女一级毛片 | 国内精品999| 亚洲精品无码MA在线观看 | 桃花岛亚洲成在人线AV | 亚色中文| 久久精品视频免费 | 国产精品天堂 | 男人操女人视频在线观看 | 久久久久久亚洲AV无码蜜芽 | 色综合视频一区中文字幕 | 久久人人爽人人爽人人爽av | 把女邻居弄到潮喷的性经历 | 日韩成人午夜视频 | 国产真实老熟女无套内射 | 中文字幕不卡在线观看 | 熟妇人妻久久中文字幕 | 亚洲成人网在线播放 | 中字一区 | 影音先锋aⅴ男人资源先锋影院 | 亚洲国产精品无码久久久久久曰 | 狠狠操在线视频 |