線性表的鏈式結構特點是用一組任意的儲存單元儲存線性表的資料元素,可以不連續。鏈式的優勢在於方便插入,刪除
**如下:
#include#include#include
#include
#include
using
namespace
std;
#define ture 1
#define false 0
#define ok 1
#define error 0typedef
intstatus;
typedef
intelemtype;
typedef
struct
lnodelnode,*linklist;
status initlist(linklist &l)//
初始化,申請乙個頭結點
status destroylist(linklist l)
//銷毀,包括頭結點都銷毀;
return
ok;}
status clearlist(linklist l)
//清除,不清除頭結點
l->next=null;
return
ok;}
status listempty(linklist l)
//判斷是否為空
int listlenth(linklist l)//
獲得長度
returni;}
status getelem(linklist l,
int i,elemtype &e)//
獲得某個位置元素
if(!p||j>i)
return
error;
e=p->data;
return
ok;}
int getposition(linklist l,elemtype e)//
獲得資料元素的位置
return -1;}
status listinsert (linklist l,
int i, elemtype e)//
指定位置插入
if(!p||j>i-1
)
return
error;
s=(linklist)malloc(sizeof
(lnode));
s->data=e;
s->next=p->next;
p->next=s;
return
ok;}
status listdelete (linklist l,
int i, elemtype &e)//刪除
指定位置元素
if(!p||j>i-1
)
return
error;
q=p->next;
p->next=q->next;
e=q->data;
free
(q);
return
ok;}
void createlist (linklist &l,int n)//
逆序插入
}void createlist2(linklist &l,int n)//
正序插入
p->next=null;
}void mergelist_link(linklist &la,linklist &lb,linklist &lc)
else
pc->next=pa?pa:pb;
//插入剩餘
free(lb);//
釋放lb的頭結點
lb=null;
}void display(linklist &l)//展示乙個鍊錶的所有資料元素
cout
<}
資料結構之單鏈表
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...
資料結構之單鏈表
由於順序表再插入或者刪除時需要移動大量資料,並且如果表比較大,會比較難分配連續的儲存空間導致儲存資料失敗。因此可以採用鍊錶結構,鍊錶結構是一種動態儲存分配的結構形式,可以根據需要動態的申請所需的儲存單元。鍊錶又分為單鏈表,雙向鍊錶,以及單迴圈鍊錶,多重鏈的迴圈鍊錶。本文先介紹單鏈表。典型的單鏈表結構...