#define ok 1
#define error 0
#define true 1
#define false 0
typedef int status;
typedef int elemtype;
#define maxsize 20
typedef struct
sqlist;
typedef struct node
;typedef struct node *linklist;
//用e返回l中第i個資料元素的值
status getelem(linklist l,int i,elemtype *e)
if(!p || j > i)
*e = p->data;
return ok;
}//在l中第i個節點位置之前插入新的資料元素e,l的長度增加1
status listinsert(linklist l,int i,elemtype e)
if(!p || j > i)
s = (linklist)malloc(sizeof(node));
s->data = e;
s->next = p->next;
p->next = s;
return ok;
}//刪除l的第i個節點,並用e返回其值,l的長度減一
status listdelete(linkelist l,int i,elemtype e)
if(!(p-next) || j > i)
q = p->next;
p->next = q->next;
*e = q->data;
free(q);
return ok;
}//隨機產生n個元素的值,建立帶有表頭節點的單鏈線性表l(新增節點插在表頭)
void createlisthead(linklist l,int n)
}//隨機產生n個元素的值,建立帶表頭節點的單鏈線性表l(新增節點插在鍊錶尾部)
void createlisttail(linklist l,int n)
r->next = null;
}//清空單鏈表,從表頭開始,單保留頭結點
status clearlist(linklist l)
l->next = null;
return ok;
}
資料結構之單鏈表
date 08 07 06 descript 單鏈表的實現與應用 public class linlist public node gethead 定位函式 public void index int i throws exception if i 1 current head.next int j...
資料結構之單鏈表
鍊錶 儲存結構的一種,包含兩個部分,資料域和指標域,相對於順序儲存結構來說,插入和刪除的演算法時間複雜度只為o 1 定義 定義 typedef struct node linklist linklist,指標指向每乙個元素 typedef struct nodenode 以下為簡單的c語言實現 in...
資料結構之單鏈表
由於順序表再插入或者刪除時需要移動大量資料,並且如果表比較大,會比較難分配連續的儲存空間導致儲存資料失敗。因此可以採用鍊錶結構,鍊錶結構是一種動態儲存分配的結構形式,可以根據需要動態的申請所需的儲存單元。鍊錶又分為單鏈表,雙向鍊錶,以及單迴圈鍊錶,多重鏈的迴圈鍊錶。本文先介紹單鏈表。典型的單鏈表結構...