資料結構 線性表 單,雙 鍊錶操作

2021-09-25 00:17:05 字數 2865 閱讀 3648

由於使用 引用更加方便,所以以後採用資料結構一書中的**格式

**如下:

#include #include typedef int elemtype;

typedef struct lnodelnode,*linklist;

/* 頭部插入法 從空表開始,生成新結點,將讀取的資料存放進入新結點的資料域中。

linklist list_headinsert(linklist &l);

尾部插入法 從空表開始,生成新結點,將讀取的資料存放進入新結點的資料域中。

linklist list_tailinsert(linklist &l);

按照序號查詢操作

linklist getelem(linklist l,int i);

按結點查詢操作

linklist locateelem(linklist l,elemtype e);

給定序號前插

bool listfrontinsert(linklist l,int i,elemtype e);

刪除結點操作

bool listdelete(linklist l,int i);

求表長操作

int getlenght(linklist l);

輸出鍊錶中的資料

void printlist(linklist l);

*/// ***********實現

linklist list_headinsert(linklist &l)

return l;

}linklist list_tailinsert(linklist &l)

r->next=null;

return l;

} linklist getelem(linklist l,int i)

return p;

}linklist locateelem(linklist l,elemtype e)

bool listfrontinsert(linklist l,int i,elemtype e)

bool listdelete(linklist l,int i)

int getlenght(linklist l)

return len;

} void printlist(linklist l)

printf("\n");

}int main()

search = locateelem(l,3);

if(search!=null)

listfrontinsert(l,2,99);

printlist(l);

printf("the lenght of list %d\n",getlenght(l));

listdelete(l,4);

printlist(l);

printf("the lenght of list %d\n",getlenght(l)); }

/*you can out,if you input 9999

3 4 5 6 7 9999

3 4 5 6 7

按序號查詢成功

4按值查詢成功

33 99 4 5 6 7

長度為 63 99 4 6 7

長度為 5

*/

雙鏈表與單鏈表其中**大量相似**如下:

#include#includetypedef int elemtype;

typedef struct dnodednode,*dlinklist;

/* dlinklist dlist_headinsert(dlinklist &dl);

dlinklist dlist_tailinsert(dlinklist &dl);

dlinklist getelem(dlinklist dl,int i);

dlinklist locateelem(dlinklist dl,elemtype e);

bool dlistfrontinsert(dlinklist dl,int i,elemtype e);

bool dlistdelete(dlinklist dl,int i);

void printdlist(dlinklist dl);

*/dlinklist dlist_headinsert(dlinklist &dl)

dl->next = s;

s->prior = dl;

scanf("%d",&x);

} return dl;

}dlinklist dlist_tailinsert(dlinklist &dl)

return dl;

}dlinklist getelem(dlinklist dl,int i)

return p;

}dlinklist locateelem(dlinklist dl,elemtype e)

bool dlistfrontinsert(dlinklist dl,int i,elemtype e)

bool dlistdelete(dlinklist dl,int i)

free(p);

return true;

}void printdlist(dlinklist dl)

printf("\n");

}int main()

search=locateelem(dl,4);

if(search!=null)

dlistfrontinsert(dl,3,99);

printdlist(dl);

dlistdelete(dl,2);

printdlist(dl);

}

資料結構 線性表 單迴圈鍊錶

資料結構 線性表的鏈式表示 單鏈表 迴圈鍊錶 線性表元素序號從1算起 date 2017 4 13 include include define initsize 100 define elemtype char typedef struct lnodelnode,linklist linklist...

資料結構 線性表 鍊錶

在之前了解完什麼是資料結構之後 資料結構 線性表 順序表 陣列 我們再來看看線性結構另外一種實現方式 鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過 鏈 的方式將資料進行連線,而這個 鏈 的實現就是通過指標來實現的。鍊錶的連續儲存方式 對於抽象資料型別來說,每一種資料結構都有自己...

資料結構 線性表 雙鏈表

資料結構 線性表的鏈式表示 雙鏈表 線性表元素序號從1算起 date 2017 4 13 include include define initsize 100 define elemtype char typedef struct lnodelnode,linklist linklist crea...