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

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

線性表之雙鏈表基本操作

2019-11-14 09:38:02
字體:
來源:轉載
供稿:網友
/* *姓名:劉金石 *時間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
亚洲精品视频在线播放| 色777狠狠综合秋免鲁丝| 91精品国产综合久久久久久久久| 亚洲激情在线视频| 亚洲精品一区二区在线| 亚洲国产成人爱av在线播放| 日韩网站免费观看| 亚洲精品第一页| 第一福利永久视频精品| 日韩av在线看| 亚洲成色www8888| 日韩av不卡电影| 国产一区二区三区在线看| 中文字幕亚洲情99在线| 爽爽爽爽爽爽爽成人免费观看| 久久夜精品香蕉| www.亚洲男人天堂| 欧美激情精品久久久久久变态| 日韩国产中文字幕| 2019中文字幕在线观看| 国产欧美va欧美va香蕉在| 国产一区二区三区三区在线观看| 亚洲春色另类小说| 日韩电视剧免费观看网站| 国产精品一区二区av影院萌芽| 精品毛片网大全| 97香蕉久久超级碰碰高清版| 精品中文字幕视频| 日韩精品在线观看一区二区| 成人免费视频xnxx.com| 欧美大片免费看| 亚洲综合日韩在线| 日韩电影中文字幕av| 91av视频在线免费观看| 久久久久久国产精品久久| 欧美日韩福利视频| 国产视频精品一区二区三区| 欧美诱惑福利视频| 91视频免费网站| 日韩欧美国产黄色| 欧美精品videosex极品1| 97在线看免费观看视频在线观看| 亚洲欧美日韩一区二区在线| 九九精品视频在线| 日韩电影中文字幕在线观看| 欧美激情一区二区三区久久久| 欧美精品一区在线播放| 精品久久久久久久久久久久| 久久免费在线观看| 狠狠色狠狠色综合日日小说| 亚洲免费视频在线观看| 亚洲国产精品va在线看黑人| 亚州精品天堂中文字幕| 91精品国产高清久久久久久91| 欧美自拍视频在线观看| 日韩久久午夜影院| 欧美日韩国产一区在线| 国产福利成人在线| 97不卡在线视频| 久久国产精品电影| 国产精品极品美女粉嫩高清在线| 国产精品久久久久久久久久尿| 成人精品久久久| 欧美韩国理论所午夜片917电影| 97在线观看视频国产| 国产精品一区二区电影| 国产成人在线精品| 成人中文字幕在线观看| 91亚洲国产精品| 欧美夫妻性视频| 日韩av一区二区在线观看| 欧美多人爱爱视频网站| 97国产精品视频| 久久99精品久久久久久青青91| 色青青草原桃花久久综合| 成人看片人aa| 国产精品自拍小视频| 欧美日韩亚洲网| 亚洲美女免费精品视频在线观看| 亚洲国产天堂久久综合| 欧美亚洲国产日本| 97精品欧美一区二区三区| 亚洲色图偷窥自拍| 久久男人资源视频| 国产日韩欧美黄色| 精品视频在线播放色网色视频| 国产午夜精品美女视频明星a级| 亚洲电影免费观看| 久久五月情影视| 国产欧美va欧美va香蕉在| 成人久久18免费网站图片| 91精品国产自产在线观看永久| 国产成人激情小视频| 久久精品国产一区二区电影| 成人做爽爽免费视频| 国产精品爱啪在线线免费观看| 国产精品网红直播| 日本不卡免费高清视频| 欧美日韩午夜激情| 欧美视频在线免费看| 91系列在线观看| 久久久99免费视频| 综合网日日天干夜夜久久| 精品精品国产国产自在线| 亚洲第一黄色网| 欧洲中文字幕国产精品| 在线观看免费高清视频97| 亚洲黄一区二区| 久久久噜久噜久久综合| 欧美日本亚洲视频| 精品电影在线观看| **欧美日韩vr在线| 91成人在线播放| 国产精品吊钟奶在线| 亚洲精品国产suv| 国产精品精品久久久久久| 欲色天天网综合久久| 岛国视频午夜一区免费在线观看| 国产日本欧美视频| 97久久精品人搡人人玩| 久久久久久亚洲精品不卡| 欧美性猛交xxxx久久久| 国产精品欧美风情| 日韩性生活视频| 欧美精品videos| 久久亚洲精品成人| 亚洲女人天堂色在线7777| 亚洲va码欧洲m码| 欧美日韩第一页| 8090成年在线看片午夜| 亚洲欧美另类中文字幕| 亚洲国产婷婷香蕉久久久久久| 国产亚洲精品久久久优势| 国产精品r级在线| 亚洲国产精品美女| 亚洲欧洲在线看| 亚洲欧洲第一视频| 中文字幕在线观看亚洲| 亚洲欧美一区二区三区久久| 不卡av在线网站| 97免费中文视频在线观看| 亚洲欧美在线x视频| 中文日韩电影网站| 国产精品免费观看在线| 欧美性xxxx极品高清hd直播| 亚洲自拍偷拍区| 欧洲成人性视频| 国产一区二区三区在线视频| 久久99国产综合精品女同| 91久久国产综合久久91精品网站| 最近2019年手机中文字幕| 中文字幕在线精品| 亚洲电影免费观看高清| 欧美成人精品影院| 26uuu日韩精品一区二区| 亚洲一二在线观看| 国产精品欧美一区二区三区奶水| 成人精品视频在线| 国产精品扒开腿做| 美女少妇精品视频| 亚洲第一区中文字幕| 在线观看91久久久久久| 欧美成aaa人片免费看| 久久99国产精品自在自在app|