資料結構基本之線性表

2021-10-02 11:13:04 字數 1677 閱讀 2990

2.2順序表插入

//順序表儲存結構

#define maxsize 100

typedef structlist;

#define ok 1

#define error 0

//在順序表l中第i個資料元素之前插入乙個元素e。

//i的合法取值範圍1<=i<=last+2

int inslist(list *l,int i,type e)

//判斷是否能夠插入

//最後乙個元素已經是 maxsiaze-1

if(l->last>=maxsiaze-1)

//為插入元素移動位置 i-1把i-1的元素移走

for(k=l->last;k>=i-1;k--)

l->elem[i-1]=e;//第i個資料元素之前插入乙個元素e

l->last++;//修改尾指標

return ok:

}2.3順序表刪除

#define ok 1

#define error 0

//在順序表l中刪除第i個資料元素,並用指標引數e返回其值。

//i的合法取值範圍1<=i<=last+1

int inslist(list *l,int i,type e)

*e =l->elem[i-1];//將刪除元素放入指標e帶出

//為插入元素移動位置 i-1把i-1的元素移走

for(k=i;i<=l->last;k--)//last最後乙個元素的下標

l->last--;//修改尾指標

return ok:

}//單鏈表的儲存結構

//node結點型別定義

typedef struct nodenode,*list; //*list結構指標型別

//初始化單鏈表

initlist(list *l)

//頭插法建立單鏈表

void creatfromhead(list l)

else flag=0; }}

//尾插法建立單鏈表

void creatfromtail(list l)

else }}

//單鏈表的刪除

int insert(list l,int i,type e)

while(pre!=null&&knext;

k=k+1;

} if(pre==null)

s->data=e;

s->next=pre->next;

pre->next=s;

return ok:

}//單鏈表刪除

int dellist(list l,int i,type *e)

if(pre->next==null||i<1)

s=pre->next;

pre->next=s->next;

*e=s->data;

free(s);

return ok:

}//線性表的鏈式儲存

typedef int elemtype;

//單鏈表儲存結構的描述

typedef struct node//結點型別定義

node,*linklist;

//初始化單鏈表

initlist(linklist *l)

mysql 線性表 資料結構之線性表

概要 參考 大話資料結構 把常用的基本資料結構梳理一下。線性表定義 線性表 list 零個或多個資料元素的有限序列。若將線性表記為 a 1,cdots,a a i,a cdots,a n 則表中 a 領先於 a i a i 領先於 a 稱 a 是 a i 的直接前驅元素,a 是 a i 的直接後繼元...

資料結構之線性表

從現在開始,我們開始討論如何實現一些常用的資料結構和其中的一些經典演算法.等把資料結構講完了.我可能會繼續討論vc 的程式設計只是以及vs平台下的c c 開發等等.呵呵.我們進入正題吧.我在這裡就只實現線性表的連表結構.當然了,這裡實際上包含了好多知識.我希望大家在引用的時候.一定要領悟裡面的一些變...

資料結構之線性表

線性表是具有相同特性的資料元素的乙個有限序列。該序列中所含元素的個數叫做線性表的長度,用n表示,n 0。當n 0時,表示線性表是乙個空表,即表中不包含任何元素。設序列中第i i表示位序 個元素為ai 1 i n 線性表的一般表示為 a1,a2,ai,ai 1,an include include d...