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

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

線性表之雙鏈表基本操作

2019-11-14 08:43:47
字體:
來源:轉載
供稿:網友
/* *姓名:劉金石 *時間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
日韩成人久久久| 欧美成人精品激情在线观看| 亚洲人成人99网站| 麻豆一区二区在线观看| 亚洲视频综合网| 岛国av一区二区三区| 欧美成人精品在线| 92看片淫黄大片看国产片| 欧美在线观看日本一区| 亚洲福利视频网| 欧美黑人xxxx| 亚洲成人性视频| 亚洲一区二区久久久| 亚洲国产精品成人av| 国产视频久久久久久久| 久久精品99久久香蕉国产色戒| 麻豆乱码国产一区二区三区| 国产成人精品午夜| 亚洲男人天堂网| 久久久国产91| 欧美性猛交xxxx久久久| 亚洲乱码av中文一区二区| 成人有码视频在线播放| 久久99国产精品自在自在app| 68精品久久久久久欧美| 日韩av免费在线| 欧美三级免费观看| 欧美在线视频播放| 91视频-88av| 日韩国产精品视频| 国模精品一区二区三区色天香| 久久久久久久久久久免费精品| 国产精品免费电影| 亚洲国产精品久久久久久| 国产日韩在线视频| 国产午夜精品全部视频播放| 成人免费视频a| 国产一区av在线| 成人在线视频网站| 国产精品激情av电影在线观看| 亚洲黄色www网站| 俺去亚洲欧洲欧美日韩| 日韩亚洲精品视频| 中文字幕av一区二区三区谷原希美| 国产综合视频在线观看| 欧美精品国产精品日韩精品| 亚洲最大av网站| 久久久久久国产| 亚洲第一天堂av| 亚洲午夜女主播在线直播| 青青草99啪国产免费| 啪一啪鲁一鲁2019在线视频| 国产成人鲁鲁免费视频a| 亚洲国产婷婷香蕉久久久久久| 一本久久综合亚洲鲁鲁| 91av免费观看91av精品在线| 亚洲美女激情视频| 欧美黄网免费在线观看| 国产精品久久在线观看| 成人欧美在线观看| 精品国产乱码久久久久久天美| 夜夜嗨av色一区二区不卡| 久久91亚洲精品中文字幕| 久久综合88中文色鬼| 97**国产露脸精品国产| 日韩视频―中文字幕| 久久久人成影片一区二区三区| 日韩高清不卡av| 国产成人精品久久二区二区| 日本成熟性欧美| 亚洲精品第一国产综合精品| 91丝袜美腿美女视频网站| 精品久久中文字幕久久av| 欧美福利视频在线观看| 国产丝袜精品第一页| 欧美激情久久久| 91亚洲精品久久久| 国产69久久精品成人| 亚洲a级在线观看| 国内精品久久久| 国产免费一区视频观看免费| 日韩电影在线观看永久视频免费网站| 国产欧美久久久久久| 欧美日本精品在线| 日韩中文字幕网址| 亚洲第一页在线| 亚洲高清免费观看高清完整版| 91日韩在线视频| 国产精品久久久久久久久久| 国产亚洲精品综合一区91| 91免费精品国偷自产在线| 国产丝袜一区二区三区免费视频| 久久综合网hezyo| 欧美在线国产精品| 欧美日韩国产精品一区二区三区四区| 日韩欧美第一页| 萌白酱国产一区二区| 尤物九九久久国产精品的特点| 亚洲一区二区中文字幕| 国产精品色婷婷视频| 91久久精品美女高潮| 国产精品一区久久| 久久手机精品视频| 亚洲久久久久久久久久久| 欧美午夜宅男影院在线观看| 国产精品自拍偷拍视频| 国产精品久久激情| 欧美综合在线观看| 夜夜嗨av一区二区三区四区| 午夜精品久久久久久久99热浪潮| 欧美日韩xxxxx| 国产专区精品视频| 一本一本久久a久久精品综合小说| 午夜免费久久久久| 日韩精品视频在线观看免费| 亚洲精品视频在线观看视频| 亚洲精品国产精品久久清纯直播| 欧美夫妻性生活视频| 日韩有码在线播放| 日韩欧美国产成人| 国产精品丝袜一区二区三区| 亚洲欧美日本伦理| 中文字幕av一区二区三区谷原希美| 国产精品成人va在线观看| 久久影视免费观看| 国产欧美va欧美va香蕉在| 日本午夜人人精品| 亚洲欧美另类人妖| 日韩国产在线看| 亚洲免费视频一区二区| 亚洲第一区第一页| 7m精品福利视频导航| 欧美大片网站在线观看| 国产不卡av在线| 欧美成人免费一级人片100| xxxx性欧美| 深夜福利国产精品| 亚洲二区中文字幕| 国产日韩精品视频| 亚洲人午夜精品免费| 亚洲精品suv精品一区二区| 91精品在线播放| 成人做爰www免费看视频网站| 亚洲高清av在线| 亚洲黄色免费三级| 国产成人一区二区三区电影| 日韩美女激情视频| 浅井舞香一区二区| xvideos国产精品| 国产亚洲精品美女| 欧美激情xxxx性bbbb| 狠狠久久五月精品中文字幕| 欧美人在线观看| 亚洲成人av在线| 国产精品美乳在线观看| 久久成人人人人精品欧| 日韩精品小视频| 亚洲偷欧美偷国内偷| 91在线免费网站| 欧美日韩中文字幕日韩欧美| 两个人的视频www国产精品| 久久久久久久国产精品| 欧美成人手机在线| 欧美在线激情网|