seqlist.h
#include
typedef int datatype;
typedef struct seqlist seqlist;
void seqlistinit(seqlist* sl);//初始化資料表
void seqlistdestory(seqlist* sl);//銷毀順序表
void seqlistcheckcapacity(seqlist* sl);//檢查容量
void seqlistpushback(seqlist* sl, datatype x);//尾插
void seqlistpushfront(seqlist* sl, datatype x);//頭插
void seqlistinsert(seqlist* sl, size_t pos, datatype x);//插入,pos前插入
void seqlistpopback(seqlist* sl);//尾刪
void seqlistpopfront(seqlist* sl);//頭刪
void seqlisterase(seqlist* sl,size_t pos);//任意位置刪除
size_t seqlistfind(seqlist* sl, datatype x);//查詢
size_t seqlistmodify(seqlist* sl, size_t pos, datatype x);//修改,pos修改為x
void seqlistprint(seqlist* sl);//列印
size_t seqlistsize(seqlist* sl);//當前元素的個數
datatype seqlistat(seqlist* sl, size_t pos);//pos處的元素
#include"seqlist.h"
#include"assert.h"
#include"malloc.h"
void seqlistinit(seqlist* sl) //初始化
void seqlistdestory(seqlist* sl)
}//銷毀
void seqlistcheckcapacity(seqlist* sl)
}//檢查容量
void seqlistpushback(seqlist sl, datatype x) //尾插
void seqlistpushfront(seqlist* sl, datatype x)
sl->_array[0] = x;
++sl->_size;
}//頭插
void seqlistinsert(seqlist* sl, size_t pos, datatype x)
else if (pos == sl->_size)
else
sl->_array[pos] = x;
++sl->_size;
}}//插入,pos前插入
void seqlistpopback(seqlist* sl)
--sl->_size;
}//尾刪
void seqlistpopfront(seqlist* sl)
--sl->_size;
}//頭刪
void seqlisterase(seqlist* sl, size_t pos)
while (pos < sl->_size)
--sl->_size;
}//任意位置刪除
size_t seqlistfind(seqlist* sl, datatype x)
}printf(「不存在此數.\n」);
return 0;
}//查詢
size_t seqlistmodify(seqlist* sl, size_t pos, datatype x) //修改,pos修改為x
void seqlistprint(seqlist* sl)
printf("\n");
}//列印
size_t seqlistsize(seqlist* sl);//當前元素的個數
datatype seqlistat(seqlist* sl, size_t pos);//pos處的元素
資料結構 鍊錶及鍊錶功能實現
typedef struct node listnode,linklist 舉例 1.設p指向鍊錶中結點ai 2.可呼叫c語言中malloc 函式向系統申請結點的儲存空間 linklist p p linklist malloc sizeof listnode 強制型別轉換 則建立乙個型別為link...
資料結構 線性表 陣列實現
按照上述抽象描述,定義乙個模板類來描述上述的抽象描述。templateclass linearlist bool isempty const 判斷線性表是否為空 int length const 線性表長度 bool find int k,t x const 返回第k個元素到x中 int searc...
資料結構棧 線性表實現
棧的定義 棧是一種特殊的表這種表只在表頭進行插入和刪除操作。因此,表頭對於棧來說具有特殊的意義,稱為棧頂。相應地,表尾稱為棧底。不含任何元素的棧稱為空棧。而本次給大家介紹用線性表實現的棧。如圖 這裡介紹雙向鍊錶的常用操作 l 建立棧 l 銷毀棧 l 清空棧 l 壓棧 l 出棧 l 返回棧頂元素 l ...