線性表的順序儲存實現
//線性表用陣列來實現
typedef struct polynode *polynomial;
struct polynode;
typedef struct lnode *list;
struct lnode;
struct lnode l;
list ptrl;//線性表結構的指標
//訪問下標為i的元素:l.data[i]或ptrl->data[i]
//線性表的長度:l.last+1或ptrl->last+1
//1.初始化(建立空的順序表)
list makeempty()
//2.查詢
//查詢成功的平均比較次數為(n+1)/2,平均時間效能為o(n)
//3.插入操作實現
void insert(elementtype x,int i,list ptrl)
if(i<1||i>ptrl->last+2)
for(j=ptrl->last;j>=i-1;j--)
ptrl->data[j+1]=ptrl->data[j];//將ai~an倒序向後移動
ptrl->data[i-1]=x;//新元素插入
ptrl->last++;//last仍指向最後元素
return;
} //平均移動次數為n/2,平均時間效能為o(n)
//4.刪除操作實現
void delete(int i,list ptrl)
for(j=i;j<=ptrl->last;j++)
ptrl->data[i-1]=ptrl->data[i];//將ai+1~an順序向前移動
ptrl->last--;//last仍指向最後元素
return;
} //平均移動次數為n/2,平均時間效能為o(n)
線性表的鏈式儲存實現
//鍊錶
typedef struct lnode *list ;
struct lnode;
struct lnode l;
list ptrl;
//1.求表長——鍊錶遍歷
int length(list ptrl)//煉表頭指標
return j;
} //時間效能為表長o(n)
//2.查詢
//(1)按序號查詢:findkth;
list findkth(int k,list ptrl)
if(i==k)
return p;//找到第k個,返回指標
else
return null;//否則返回空
} //(2)按值查詢
list find(elementtype x,list ptrl)
//3.插入
list insert(elementtype x,int i,list ptrl)//將x插入到ptrl的第i個位置
p=findkth(i-1,ptrl);//查詢第i-1個結點
if(p==null)
else
} //4.刪除
list delete(int i,list ptrl)
p=findkth(i-1,ptrl);//查詢第i-1個結點
if(p==null)
else if(p->next==null)
else
}
線性表 陣列實現 鍊錶實現 C語言
1 初始化 建立空的順序表 typedef int position typedef struct lnode list struct lnode list makeempty 2 查詢 define error 1 position find elementtype x,list ptrl 3 插...
線性表的鍊錶實現
include include define elemtype int typedef struct lnode list struct lnode struct lnode l list ptrl list makeempty list ptrl 建立空表 int length list ptrl...
線性表的鍊錶實現
include printf輸出函式和scanf輸入函式所在標頭檔案 include exit退出函式所在標頭檔案 include malloc動態記憶體分配函式 realloc函式所在的標頭檔案 includeusing namespace std 用 define巨集定義來定義符號常量 函式結果...