一、目的
掌握線性表的臉是儲存結構及運算
熟悉迴圈鍊錶及雙鏈表線性表的基本運算
二、內容
編寫乙個程式cdlinklist.cpp,實現迴圈雙鏈表的各種基本運算和整體建表演算法(假設迴圈雙鏈表的元素型別elemtype為char),並在此基礎上設計乙個主程式,完成如下功能:
(1)初始化迴圈雙鏈表h
(2)依次採用尾插法插入a,b,c,d,e元素
(3)輸出迴圈雙鏈表h
(4)輸出迴圈雙鏈表h長度
(5)判斷順序表h是否為空
(6)輸出迴圈雙鏈表h的第3個元素
(7)輸出元素a的位置
(8)在第4個元素位置上插入f元素
(9)輸出迴圈雙鏈表h
(10)刪除迴圈雙鏈表h的第3個元素
(11)輸出迴圈雙鏈表h
(12)釋放迴圈雙鏈表h
l3=(x1,y1,x2,y2,…,xm,ym,xm+1,…,xn)當m<=n時
l3=(x1,y1,x2,y2,…,xn,yn,yn+1,…,yn)當m>n時
l3仍採用單鏈表儲存,演算法的空間複雜度為o(1)。
三、源**
迴圈雙鏈表
#include#includetypedef char elemtype;
typedef struct dnode
dlinknode;
void createlistf(dlinknode *&l,elemtype a,int n)
s=l->next;
while(s->next!=null)
s=s->next;
s->next=l;
l->prior=s;
}void createlistr(dlinknode *&l,elemtype a,int n)
r->next=l;
l->prior=r;
}void initlist(dlinknode *&l)
void destroylist(dlinknode *&l)
free(pre);
}bool listempty(dlinknode *l)
int listlength(dlinknode *l)
return(i);
}void displist(dlinknode *l)
printf("\n");
}bool getelem(dlinknode *l,int i,elemtype &e)
else
if(p==null)
return false;
else
}}int locateelem(dlinknode *l,elemtype e)
if(p==l)
return 0;
else
return i;
}bool listinsert(dlinknode *&l,int i,elemtype e)
else if (i==1)
else
if(p==l)
return false;
else
}}bool listdelete(dlinknode *&l,int i,elemtype &e)
else
if(p==l)
return false;
else
}}int main()
單鏈表合併
#include#includetypedef char elemtype;
typedef struct lnode
linknode;
void createlistf(linknode *&l,elemtype a,int n)
}void createlistr(linknode *&l,elemtype a,int n)
r->next=null;
}void initlist(linknode *&l)
void destroylist(linknode *&l)
free(p);
}bool listempty(linknode *l)
int listlength(linknode *l)
return(i);
}void displist(linknode *l)
printf("\n");
}bool getelem(linknode *l,int i,elemtype &e)
if(p==null)
return false;
else
}int locateelem(linknode *l,elemtype e)
if(p==null)
return 0;
else
return i;
}bool listinsert(linknode *&l,int i,elemtype e)
if(p==null)
return false;
else
}bool listdelete(linknode *&l,int i,elemtype &e)
if(p==null)
return false;
else
}void merge(linknode *l1,linknode *l2,linknode *&l3)
r->next=null;
if(q!=null)p=q;
r->next=p;
}int main()
線性表鏈式儲存結構
include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...
線性表鏈式儲存結構
為了表示每個資料元素ai與其直接後繼資料元素ai 1之間的邏輯關係,對資料元素ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 我們把儲存資料元素資訊的域稱為資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱做指標或鏈。這兩部分資訊組成資料元素a...
線性表 鏈式儲存結構
1 線性表的鏈式儲存結構 每個元素多用乙個位置來存放指向下乙個元素位置的指標,依次類推,可以找到所有的元素。鏈式儲存中,除了要儲存資料本身外,還要儲存它的後繼元素的儲存位址 指標 資料域 儲存資料資訊的域 指標域 儲存直接後繼位置的域。這兩部分資訊組成資料元素稱之為儲存映像,節點node。鍊錶中每個...