#include
#include
#define ok 1
#define true 1
#define error -1
#define false -1
#define overflow -2
#define elemtype int
#define status int
//線性單鏈表 初始化 插入 取出 頭插法 合併公升序排列
//-------------------------------線性單鏈表
typedef
struct lnodelnode, *linklist;//型別重定義struct lnode為lnode,型別重定義 lnode的*指標 為linklist
status initlist_l(linklist &l)
status getelem_l(linklist l,int i,elemtype &e)
if (!p || j>i) return
false;//第i個元素不存在
e = p->data;//取出第i個元素,值為e
return
true;
}//getelem_l
status listinsert_l(linklist &l, int i, elemtype e) //尋找第i個結點,指標下移,j最後停在i
if (!p || j>i) return
false;
s = (linklist)malloc(sizeof(lnode));//生成新節點,開闢記憶體空間 返回指標s,insert
s->data = e;//s->data域的賦值 assignment
s->next = p->next;//指標操作 ,=右往左,指標 指向
p->next = s;
}status listdelete_l(linklist &l, int i, elemtype &e) //尋找第i個結點,下標最後是i-1,指標下移,j最後停在i
if (p->next || j>i - 1) return
false;//刪除位置不合理
q = p->next; //q是被刪除的節點
p->next = q->next;//p的next,指向q->next
e = q->data; //取出 值為e
free(q);//返回值,釋放空間
}lnode * locateelem_l(linklist l, elemtype e) ;//if(!p) p=null;
return p;//時間複雜度o(n)
}void createlist_l(linklist &l, int n)
}void mergelist_l(linklist &la, linklist &lb,)
else //2個結合起來就是小者排前面,這個**寫的真差,不是人類看的,因為c在a和b只見跳來跳去,臨時pc變數拆成2個就容易理解了
}if (pb) q->next = pb;
}//mergelist_l
//-------雙向鍊錶 y
typedef
struct lnode *link, *position;//型別重定義struct lnode * 為link,link * 為 position
status makenode(link &p, elemtype e){}
void freenode(link &p)
typedef
struct dulnode dulnode, *dulinklist;
//------靜態鍊錶 x 使用陣列實現鍊錶,可以在沒有指標的程式語言中實現鍊錶結構
#define max_size 1000
typedef
struct component, staticlinklist[max_size]; //宣告為staticlinklist[max_size]
typedef component slinklist[max_size];
status initlist_sl(staticlinklist &space)
int locateelem_sl(slinklist s, elemtype e)
int malloc_sll(staticlinklist space)
void free_sll(slinklist &space, int k) //free_sll
status listinsert(staticlinklist l, int i, elemtype e)
j = malloc_sll(l);//j表示空閒分量的下標,是當前節點下標指標
if (j)
//執行插入後,指標的變化
l[j].cur = l[k].cur; //翻譯成鍊錶 j->next = p->next 當前下標節點指標下移
l[k].cur = j;//翻譯成鍊錶 p->next = j
return
true;
}return
true;
}
靜態鍊錶的初始化 插入 刪除
include include define ok 1 define true 1 define error 1 define false 1 define overflow 2 define elemtype int define status int 靜態鍊錶 x 使用陣列實現鍊錶,可以在沒有指...
鍊錶初始化
include include include struct node void init node plink int create node plink int insert node plink int print node plink int main void init node plin...
鍊錶初始化總結
順序表 宣告 struct seqlist int last int data 12 seq,seqlist 初始化seqlist init seqlist seqlist sl malloc sizeof seq sl last 1 標記位,用於判斷是表頭還是表尾 return sl 插入操作 判...