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

首頁 > 學院 > 開發設計 > 正文

線性表之雙鏈表基本操作

2019-11-11 07:19:14
字體:
來源:轉載
供稿:網友
/* *姓名:劉金石 *時間2017年2月5日 *線性表之雙鏈表基本操作 */#include <stdio.h>#include <stdlib.h>//雙鏈表的存儲結構typedef char ElemType;typedef struct DNode{    ElemType date;//存放元素值    struct DNode *PRior;//指向前驅節點    struct DNode *next;//指向后繼節點}DLinkList;//頭插法建立雙鏈表void InitList(DLinkList *&L)	//初始化{	L=(DLinkList *)malloc(sizeof(DLinkList));  	//創建頭結點	L->prior=L->next=NULL;}void DestroyList(DLinkList *&L)	//銷毀線性表{	DLinkList *p=L,*q=p->next;	while (q!=NULL)	{		free(p);		p=q;		q=p->next;	}	free(p);}bool ListEmpty(DLinkList *L)	//判線性表是否為空表{	return(L->next==NULL);}int ListLength(DLinkList *L)	//求線性表的長度{	DLinkList *p=L;int i=0;	while (p->next!=NULL)	{		i++;		p=p->next;	}	return(i);}void DispList(DLinkList *L)	//輸出線性表{	DLinkList *p=L->next;	while (p!=NULL)	{		printf("%c ",p->date);		p=p->next;	}	printf("/n");}bool GetElem(DLinkList *L,int i,ElemType &e)	//求線性表中某個數據元素值{	int j=0;	DLinkList *p=L;	while (j<i && p!=NULL)	{		j++;		p=p->next;	}	if (p==NULL)		return false;	else	{		e=p->date;		return true;	}}int LocateElem(DLinkList *&L,ElemType e)	//按元素值查找{	int n=1;	DLinkList *p=L->next;	while (p!=NULL && p->date!=e)	{		n++;		p=p->next;	}	if (p==NULL)		return(0);	else		return(n);}void CreateListF(DLinkList *&L,ElemType a[],int n){    DLinkList *s;    int i=0;    L=(DLinkList *)malloc(sizeof(DLinkList));    L->next=L->prior=NULL;//前后指針域置為NULL    for(i=0;i<n;i++)    {        s=(DLinkList *)malloc(sizeof(DLinkList));        s->date=a[i];        /*************************/        s->next=L->next;        if(L->next!=NULL)//若L后存在數據節點,則修改L->next的前驅指針            L->next->prior=s;        L->next=s;        s->prior=L;        /*************************/    }}//尾插法建立雙鏈表void CreateListR(DLinkList *&L,ElemType a[],int n){    DLinkList *s,*r;//r指針指向鏈表的最后一個節點    int i=0;    L=(DLinkList *)malloc(sizeof(DLinkList));    r=L;    for(i=0;i<n;i++)    {        s=(DLinkList *)malloc(sizeof(DLinkList));        s->date=a[i];        /*************************/        L->next=s;        s->prior=L;        r=s;//r指向尾節點        /*************************/    }    r->next=NULL;}//插入節點bool ListInsert(DLinkList *&L,int i,ElemType e){//次算法在雙蓮表第i個位置插入值為e的節點    int j=0;    DLinkList *p=L,*s;    /*************************/    //找到第i-1個節點    while(j<i-1&&p!=NULL)    {        j++;        p=p->next;    }    /*************************/    if(p==NULL)        return false;    else    {        s=(DLinkList *)malloc(sizeof(DLinkList));        s->date=e;        /*************************/        //頭插法        s->next=p->next;        if(p->next!=NULL)            p->next->prior=s;        s->prior=p;        p->next=s;        /*************************/        return true;    }}//刪除雙蓮表中第i個節點bool ListDelete(DLinkList *&L,int i,ElemType &e){    int j=0;    DLinkList *p=L,*q;    /*************************/    //找到第i-1個節點    while(j<i-1&&p!=NULL)    {        j++;        p=p->next;    }    /*************************/    if(p==NULL)        return false;    else    {        q=p->next;        if(q==NULL)            return false;        e=q->date;        /*************************/        p->next=q->next;        if(p->next!=NULL)//若*p后存在后繼節點則修改其前驅指針           p->next->prior=p;        free(q);//釋放*q節點        /*************************/        return true;    }}int main(){	DLinkList *h;	ElemType e;	printf("雙鏈表的基本運算如下:/n");	printf("  (1)初始化雙鏈表h/n");	InitList(h);	printf("  (2)依次采用尾插法插入a,b,c,d,e元素/n");	ListInsert(h,1,'a');	ListInsert(h,2,'b');	ListInsert(h,3,'c');	ListInsert(h,4,'d');	ListInsert(h,5,'e');	printf("  (3)輸出雙鏈表h:");	DispList(h);	printf("  (4)雙鏈表h長度=%d/n",ListLength(h));	printf("  (5)雙鏈表h為%s/n",(ListEmpty(h)?"空":"非空"));	GetElem(h,3,e);	printf("  (6)雙鏈表h的第3個元素=%c/n",e);	printf("  (7)元素a的位置=%d/n",LocateElem(h,'a'));	printf("  (8)在第4個元素位置上插入f元素/n");	ListInsert(h,4,'f');	printf("  (9)輸出雙鏈表h:");	DispList(h);	printf("  (10)刪除h的第3個元素/n");	ListDelete(h,3,e);	printf("  (11)輸出雙鏈表h:");	DispList(h);	printf("  (12)釋放雙鏈表h/n");	DestroyList(h);	return 0;}運行結果:
總結:雙鏈表的基本操作和單鏈表差不太多,就是多了一個指針。有時候不清楚可以畫一下圖,思路就清晰了。像插入元素刪除元素定位元素等操作都是先找到元素或者前一個元素的位置,此過程用while循環,然后就是前插或者后插法的運用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩亚洲第一页| 久久精品国产综合| 66m—66摸成人免费视频| 97视频在线观看成人| 日韩精品免费在线视频| 欧美另类暴力丝袜| 久久久久久久999精品视频| 国产精品日日做人人爱| 色综合久久88| 欧美午夜视频一区二区| 精品久久中文字幕久久av| 欧美精品videossex88| 91精品视频观看| 国产精品自产拍在线观看中文| 亚洲一区二区在线| 国产精品女人久久久久久| 精品视频一区在线视频| 91久久久久久| 国产一区二区香蕉| 九九久久久久99精品| 欧美在线视频a| 亚洲欧美激情在线视频| 国外成人性视频| 日韩禁在线播放| 亚洲小视频在线观看| 久久天天躁夜夜躁狠狠躁2022| 欧美精品久久久久久久久| 欧美高清在线视频观看不卡| 国产视频精品自拍| 国产精品第三页| 亚州欧美日韩中文视频| 91精品国产91久久久久福利| 成人情趣片在线观看免费| 日韩精品免费看| 国产欧美在线看| 欧美电影免费观看网站| 国产精品国产亚洲伊人久久| 久久久极品av| 亚洲国产免费av| 最近2019中文字幕第三页视频| 欧美极品美女视频网站在线观看免费| 欧美专区国产专区| 欧美在线中文字幕| 午夜精品在线观看| 国产亚洲视频中文字幕视频| 91热福利电影| 国产成人avxxxxx在线看| 国产精品手机播放| 欧美精品videossex性护士| 久久久久久久av| 精品视频在线导航| 日本欧美一二三区| 清纯唯美日韩制服另类| 国产精品三级美女白浆呻吟| 国产成人精彩在线视频九色| 欧美超级免费视 在线| 亚洲欧美日韩精品| 国产精品免费电影| 欧美综合激情网| 欧美大片免费观看在线观看网站推荐| 欧美高清自拍一区| 日韩中文在线中文网三级| 98精品国产自产在线观看| 久久夜色撩人精品| 亚洲精品中文字幕女同| 日韩网站在线观看| 亚洲在线观看视频网站| 国产精品jizz在线观看麻豆| 欧美日韩国产影院| 91精品啪aⅴ在线观看国产| 国产精品99久久久久久人| 成人妇女淫片aaaa视频| 亚洲精品白浆高清久久久久久| 国产精品7m视频| 日韩av最新在线观看| 性欧美xxxx视频在线观看| 国产精品久久在线观看| 国产视频综合在线| 欧美日本高清一区| 亚洲加勒比久久88色综合| 亚洲男人的天堂网站| 日本不卡视频在线播放| 亚洲网站在线看| 8x拔播拔播x8国产精品| 国产日产亚洲精品| 激情成人中文字幕| 日韩美女免费线视频| 国产日韩专区在线| 亚洲性夜色噜噜噜7777| 91美女片黄在线观看游戏| 成人午夜在线影院| 久久免费成人精品视频| 日韩高清电影好看的电视剧电影| 不卡av电影院| 国产三级精品网站| 国产视频精品xxxx| 日韩免费不卡av| 韩日欧美一区二区| 日韩中文字幕在线精品| 国产日本欧美一区二区三区| 欧美野外wwwxxx| 国产成人精品免费视频| 久久精品亚洲一区| 欧美成人精品xxx| 日韩精品视频三区| 色综合视频一区中文字幕| 成人福利视频在线观看| 一区二区欧美激情| 欧美成人精品xxx| 成人网欧美在线视频| 国产成人精品a视频一区www| 国产精品999999| 91香蕉嫩草影院入口| 欧美激情一区二区三区成人| 国产精品大片wwwwww| 亚洲国产另类久久精品| 国产精品入口免费视| 91色精品视频在线| 国产精品直播网红| 欧美日韩免费区域视频在线观看| 91精品视频观看| 久久成人av网站| 精品亚洲一区二区三区四区五区| 国产精品美乳一区二区免费| 伊人成人开心激情综合网| 日韩激情第一页| 国产精品亚洲一区二区三区| 欧美亚洲在线观看| 国产精品一区二区三区久久久| 成人xxxx视频| 日韩激情在线视频| 亚洲人精品午夜在线观看| 成人在线一区二区| 国产精品福利在线观看网址| 亚洲奶大毛多的老太婆| 久久99亚洲热视| 久久99精品视频一区97| 久久亚洲国产成人| 欧美电影免费在线观看| 欧美最猛性xxxxx亚洲精品| 91理论片午午论夜理片久久| 日韩av在线免费观看| 亚洲成人免费网站| 欧美国产激情18| 亚洲福利精品在线| 国产精品入口福利| 亚洲图片制服诱惑| 欧美成人在线影院| 2024亚洲男人天堂| 欧美xxxx综合视频| 日韩在线精品视频| 日韩精品中文字幕有码专区| 成人a免费视频| 亚洲剧情一区二区| 亚洲毛片在线观看.| 欧美精品www| 国产精品视频免费在线| 色狠狠av一区二区三区香蕉蜜桃| 欧美电影免费观看| 亚洲视频一区二区| 性金发美女69hd大尺寸| 国内外成人免费激情在线视频网站| 在线亚洲午夜片av大片| 日韩av在线电影网|