順序表基本操作

2021-08-20 07:51:16 字數 4697 閱讀 5268

#include

#include

#include

#definemaxn 50 ///定個長度,方便修改

#define  elemtype int///巨集定義之後便於修改型別,不用乙個乙個去修改

structnode

;

voidlist_creat(struct node *l);///建立線性表

voidlist_empty(struct node *l);///判斷線性表是否為空的

voidlist_getout(struct node *l);///輸出線性表裡所有的資料

voidlist_del(struct node *l);///刪除線性表裡的資料

voidlist_lookup_position(struct node *l);///查詢線性表某個值的位置

voidlist_lookup_front_rear(struct node *l);///查詢線性表某個值的前驅和後繼

voidclear();///清屏

intmain()

clear();///清屏

}

return 0;

}

///判斷表是否為空

voidlist_empty(struct node *l)

///建立順序表

voidlist_creat(struct node *l)

///我們做的程式是要給使用者看的,所有接下來我們得注意使用者只知道順序都是從1開始,但實際是從0開始的

///我們得注意這一點

///插入資料

intlist_getin(struct node *l)

else

l->present=i;///新增資料之後要指向下乙個位置,下次使用

return 1;

}

}

///輸出順序表

voidlist_getout(struct node *l)

int i;

for(int i=1;i<=l->len;i++)

printf("\n輸出完畢\n\n\n");

}

///清屏操作的自定義函式

voidclear()

///刪除資料

voidlist_del(struct node *l)

printf("請輸入你要刪除的位置:");

scanf("%d",&order);///使用者肯定是開始從1開始的,我們程式是從0開始的

if(order<=0||order>l->len)

printf("\t\t選擇的位置不對\n");

if(order==l->len)///刪除的如果是尾部的話,直接刪除,方便再去檢索,省時間

else

--l->len;///覆蓋完之後要記得讓長度減1

return ;

}

}

///插入資料

voidlist_insert(struct node *l)

printf("請輸入你需要插入的位置:");

scanf("%d",&position);

printf("\n請輸入你需要插入的值:");

scanf("%d",&value);

if(position<=0||position>l->len)

///插入資料就相當於要把插入的位置騰出來,那就讓之後的資料都後移一位就好了

for(i=l->len+1;i>position;i--)

*(l->base+position)=value;

++l->len;///長度+1

}

///查詢資料的位置

voidlist_lookup_position(struct node *l)

printf("請輸入你要查詢的值:");

scanf("%d",&look_value);

for(i=1;i<=l->len;i++)

if(i==l->len+1)///全部資料都查過去都沒有的話,那就是不存在這個資料了

else

}

///查詢資料的前驅和後繼

voidlist_lookup_front_rear(struct node *l)

printf("請輸入你需要查詢前驅和後繼的中間值:");

scanf("%d",&look_value);

for(i=1;i<=l->len;i++)

if(i==1)///如果是第乙個就是的話那就沒有前驅了,不用i+1就跳出了,所有是i=0

else if(i==l->len)///如果是尾部的話那就沒有後繼了,因為判斷完就跳出,沒有再進行+1

else if(i==l->len+1)///查過去都沒有的話,那就是沒有這個資料了

else///這是出於中間的,是正常情況的

}

順序表基本操作

先建個seqlist.h 如下 include include define maxn 100 定義線性表的長度 typedef struct seqlisttype void seqlistinit seqlisttype sl 初始化順序表 int seqlistlength seqlistty...

順序表 基本操作

include include define initsize 100 順序表儲存空間的初始分配量 typedef int elemtype 在實際問題中,根據需要定義所需的資料型別 typedef struct sqlist void initlist sqlist l 初始化操作 建立乙個空的順...

順序表基本操作

本題要求實現順序表元素的增 刪 查詢以及順序表輸出共4個基本操作函式。l是乙個順序表,函式status listinsert sq sqlist l,int pos,elemtype e 是在順序表的pos位置插入乙個元素e pos應該從1開始 函式status listdelete sq sqli...