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

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

線性表之雙鏈表基本操作

2019-11-14 09:03:25
字體:
來源:轉載
供稿:網友
/* *姓名:劉金石 *時間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
亚洲国产欧美久久| 亚洲久久久久久久久久| 色先锋资源久久综合5566| 亚洲精品久久在线| 国产一区二区三区毛片| 992tv在线成人免费观看| 国内精品久久久久久久久| 亚洲精品自拍视频| 精品久久久久久中文字幕一区奶水| 欧美精品videosex极品1| 精品国产区一区二区三区在线观看| 欧美专区日韩视频| 欧美黄色片免费观看| 黑人巨大精品欧美一区二区免费| 欧美限制级电影在线观看| 国产美女久久精品香蕉69| 国产美女精品免费电影| 狠狠色噜噜狠狠狠狠97| 日韩精品中文字幕在线观看| 国产亚洲美女精品久久久| 国内精品400部情侣激情| 精品国产91久久久久久老师| 精品亚洲永久免费精品| 另类天堂视频在线观看| 91精品国产91| 精品国产一区二区在线| 91欧美视频网站| 日本免费久久高清视频| 亚洲欧洲在线看| 欧美人在线观看| 欧美成人精品一区二区三区| 亚洲综合成人婷婷小说| 欧美成人久久久| 91色视频在线导航| 国产中文字幕日韩| 91成人天堂久久成人| 中文字幕欧美亚洲| 欧美亚洲国产视频小说| 日韩中文视频免费在线观看| 992tv在线成人免费观看| 国产精品青青在线观看爽香蕉| 久久夜色精品亚洲噜噜国产mv| 久久精品成人动漫| 亚洲国产精品成人精品| 日韩亚洲欧美成人| 91免费看国产| 伊人久久综合97精品| 国产精品毛片a∨一区二区三区|国| 97国产一区二区精品久久呦| 国产91久久婷婷一区二区| 欧美成人午夜激情| 欧美在线一级va免费观看| 91免费在线视频网站| 91九色综合久久| 国产精品一久久香蕉国产线看观看| 欧美亚洲激情视频| 欧美精品久久久久久久| 精品久久久国产精品999| 欧美精品福利在线| 国产一区二区久久精品| 国产精品久久久久影院日本| 日本久久久久久| 亚洲精品国产品国语在线| 精品呦交小u女在线| 日韩在线一区二区三区免费视频| 免费成人高清视频| 国产视频在线观看一区二区| 国产精品久久久久影院日本| 亚洲色图偷窥自拍| 欧美综合国产精品久久丁香| 中文精品99久久国产香蕉| 国产精品偷伦免费视频观看的| 国产精品自拍小视频| 91久久夜色精品国产网站| 国产成人高潮免费观看精品| 欧美理论片在线观看| 欧美中文字幕第一页| 亚洲女人天堂网| 国产视频999| 在线观看久久久久久| 国产在线观看91精品一区| 色伦专区97中文字幕| 亚洲精品欧美极品| 久久精品成人一区二区三区| 国产精品1区2区在线观看| 久久天天躁狠狠躁老女人| 成人情趣片在线观看免费| 奇米影视亚洲狠狠色| 色老头一区二区三区在线观看| 欧美视频中文字幕在线| www.日本久久久久com.| 精品久久久久久久久久久| 91av在线播放| 亚洲自拍偷拍色图| 久久这里有精品| 国产女精品视频网站免费| 97人人做人人爱| 久久久久99精品久久久久| 亚洲第一区第一页| 亚洲第一在线视频| 亚洲精品久久7777777| 亚洲国产精品久久久久秋霞蜜臀| 久久久精品视频成人| 亚洲成人久久电影| 国产乱人伦真实精品视频| 国产日韩视频在线观看| 国产有码在线一区二区视频| 亚洲视频电影图片偷拍一区| 国产中文欧美精品| 国产成人精品午夜| 中文字幕九色91在线| 欧美亚洲视频在线观看| 日韩欧美在线视频日韩欧美在线视频| 国产精品视频一区国模私拍| 久久九九全国免费精品观看| 中文字幕欧美精品日韩中文字幕| 国产成人精品免费久久久久| 在线播放日韩精品| 久久国产天堂福利天堂| 久久99青青精品免费观看| 91成人在线视频| 亚洲精品免费av| 欧美成人一二三| 国产精品主播视频| 亚洲欧美自拍一区| 国产精品高清在线| 一区二区三区视频免费在线观看| 亚洲人成毛片在线播放| 久久久精品一区二区| 精品丝袜一区二区三区| 国产欧美日韩中文字幕| 欧美日韩一区二区免费视频| 欧美性xxxxhd| 国产精品手机播放| 国产一区深夜福利| 精品国产一区二区在线| 亚洲国产精品嫩草影院久久| 久久久999精品免费| 亚洲第一区在线观看| 午夜精品一区二区三区在线视频| 全亚洲最色的网站在线观看| 久久久成人的性感天堂| 欧美大片va欧美在线播放| 中文国产亚洲喷潮| 欧美日韩午夜视频在线观看| 最近日韩中文字幕中文| 国产综合香蕉五月婷在线| 国产精品网址在线| 欧美日韩中文字幕日韩欧美| 成人福利免费观看| 日韩av在线高清| www.亚洲一区| 国产精品国模在线| 久久香蕉精品香蕉| 欧美性视频在线| 国产精品亚洲美女av网站| 国产精品久久久久久久美男| 欧美福利视频在线| 欧美激情亚洲自拍| 久久精品影视伊人网| 国产午夜精品全部视频在线播放| 色青青草原桃花久久综合| 一本色道久久88综合日韩精品| 久久免费少妇高潮久久精品99|