2.1 動態單鏈表
單鏈表:每個結點只包含乙個指標域的鍊錶
main.c
#include
#include
//#include "sequentialstorage.h"
#include
"linkstorage.h"
intmain
(int argc,
const
char
* ar**)
common.h(common.c是空的)#ifndef common_h
#define common_h
#include
#include
typedef
int elemtype;
typedef
int status;
#endif
/* common_h */
linkstorage.h//
// linkstorage.h
// ctest
//// created by macvivi on 2019/10/30.
////鏈式儲存(鏈式線性表)
#ifndef linkstorage_h
#define linkstorage_h
#include
#include
"common.h"
//28頁
typedef
struct lnode lnode, linklist;
//鏈式線性表測試**
void
linkstoragetest
(void);
//遍歷鍊錶
void
bianlils
(linklist *l)
;//建立乙個帶頭結點的單鏈表 30頁 演算法2.10
linklist *
createlist_l
(int n)
;//獲取鍊錶中第i個元素的值 29頁
elemtype getelem_l
(linklist *l,
int i)
;//在單鏈表l中第i個位置之前插入元素e 29頁 演算法2.8
status listinsert_l
(linklist *l,
int i, elemtype e)
;//在帶頭結點的單聯表l中,刪除第i個元素,並返回其值 30頁 演算法2.9
elemtype listdelete_l
(linklist *l,
int i)
;//合併單鏈表 31頁 演算法2.11 以演算法2.1為例
linklist *
mergelist_l
(linklist *la,linklist *lb)
;#endif
/* linkstorage_h */
linkstorage.c//
// linkstorage.c
// ctest
//// created by macvivi on 2019/10/30.
//#include
"linkstorage.h"
void
linkstoragetest
(void
)linklist *
mergelist_l
(linklist *la,linklist *lb)
else
} pc->next = pa?pa:pb;
//插入剩餘段
free
(lb)
;//釋放lb的頭結點
return la;
}elemtype listdelete_l
(linklist *l,
int i)if(
!(p->next)
|| j > i-1)
//刪除並釋放結點
linklist *q = p->next;
p->next = q->next;
elemtype e = q->data;
free
(q);
return e;
}status listinsert_l
(linklist *l,
int i, elemtype e)if(
!p || j > i-1)
linklist *s =
(linklist*
)malloc
(sizeof
(lnode));
s->data = e;
s->next = p->next;
p->next = s;
return1;
return0;
}elemtype getelem_l
(linklist *l,
int i)if(
!p || j>i)
return p->data;
}void
bianlils
(linklist *l)
printf
("---------\n");
}linklist*
createlist_l
(int n)
return l;
}
列印結果:hello, world!
101102
103---------
102--------
101102
9103
---------
103---------------
101102
9---------
兩個單鏈表的合併35
811---------26
891115
20---------23
5688
9111115
20---------
program ended with exit code: 0
用單鏈表實現演算法2 1
algo2 12.cpp 用單鏈表實現演算法2.1,僅有4句與algo2 1.cpp不同 include c1.h typedef int elemtype include c2 2.h 此句與algo2 1.cpp不同 因為採用不同的結構 include bo2 2.cpp 此句與algo2 1....
2 1單鏈表的基本操作
date 2017 2 24 author sedate description 單鏈表的基本操作 include include include include using namespace std define int min 0x80000000 define ok 1 define err...
C 動態單鏈表基礎
這篇部落格主要是帶助教,好多學生提問了,就參考一篇部落格稍微修改了一下 這裡我只用乙個簡單的例子 線性單向鍊錶為例,說明c語言是如何實現該結構的。鍊錶的元素是由結構體來實現struct student p。結構體中有乙個成員是結構體指標struct student next,而這個結構體指標的型別和...