//初始化線性表
#include
#include
#include
#define list_init_size 100
#define listincrement 10
#define ok 1
#define error 0
#define overflow -2
struct sqlist
char *elem;
int length;
int listsize;
int initlist(sqlist *l)
l->elem=(char *)malloc(list_init_size*sizeof(char));
if(!l->elem)
printf("malloc error!/n");
exit(overflow);
l->length=0;
l->listsize=list_init_size;
return ok;
int listinsert(sqlist *l,int i,char e)
char *newbase;
char *q,*p;
// 在順序線性l中第i個位置之前插入新的元素
if(i<1||i>l->length+1)
return error;
if(l->length>=l->listsize)
newbase=(char *)realloc(l->elem,(listincrement+list_init_size)*sizeof(char));
if(!newbase)
exit(overflow);
l->listsize+=listincrement;
q=&(l->elem[i-1]);
for(p=&(l->elem[l->length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++l->length;
return ok;
int listdel(sqlist *l,int i,char *e)//在順序線性l中刪除第i個元素,並用e返回其值
char *p,*q;
if(i<1||i>l->length)
return error;
p=&(l->elem[i-1]);
*e=*p;
q=l->elem+l->length-1;
for(++p;p<=q;++p)
*(p-1)=*p;
--l->length;
return ok;
void print(sqlist *l)
int i;
for(i=0;ilength;i++)
printf("%c/n",l->elem[i]);
int main()
sqlist l;
char elem;
initlist(&l);
listinsert(&l,1,'a');
listinsert(&l,2,'b');
print(&l);
listdel(&l,1,&elem);
printf("del:%c/n",elem);
print(&l);
return ok;
順序表的初始化 插入 刪除
昨天晚上做了中移動蘇州軟體公司的暑期實習崗的筆試題,感覺備受打擊,尤其是自以為是的資料結構題 從快排 歸併排序 堆排序中選一種實現 碎決定再次學習資料結構一次,並將重要的資料結構用程式實現。這裡先實現的是順序表的初始化,插入和刪除操作。include using namespace std 線性表的...
靜態順序表的初始化以及插入刪除操作
在編寫之前首先需要說明,在使用c語言編寫時,在自定義外函式 也就是在main函式體之外 體內不能使用 符號以及 符號,取而代之的是 號以及 符號 1.首先是靜態順序表結構體的編寫 typedef struct sqlist 2.初始化 void initlist sqlist l 3.插入操作 bo...
順序表實現初始化 插入 刪除 銷毀等操作
include include using namespace std define error 0 define ok 1 define overflow 1 define list init size 100 根據實際情況,調整初始分配空間大小 define listincrement 10 當...