C語言實現線性表

2021-10-25 04:15:24 字數 2161 閱讀 9230

#include

#include

#define maxsize 100

//定義線性表最大長度

/*定義順序表*/

typedef

struct

seqlist;

/*初始化順序表*/

void

initlist

(seqlist *l)

/*建立順序表*/

intcreatlist

(seqlist *l,

int a,

int n)

for(

int k=

0;k) l->length=n;

}/*判空順序表*/

intempty

(seqlist *l)

/*求順序表的長度*/

intlength

(seqlist *l)

/*遍歷順序表*/

void

printlist

(seqlist *l)

/*按內容查詢*/

/*在順序表中查詢到與指定值x相同的資料元素位置*/

intlocateelem

(seqlist *l,

int x)

return0;

}/*按序號查詢*/

/*根據位置i獲取相應位置資料元素的內容*/

intgetelem

(seqlist *l,

int i,

int*e)

else

}/*插入操作*/

/*將新元素x放在第i個位置*/

/*在第i個位置上插入新結點x,使長度為n的線性表變為長度n+1*/

intinsertlist

(seqlist *l,

int i,

int x)

if(l->length==maxsize)

for(

int j=l->length-

1;j>=i-

1;j--

)//length-1(如果存入了n個元素,則最後乙個元素的下標為n-1)

l->data[i-1]

=x; l->length++

;return1;

}/*刪除操作*/

/*將表中第i個結點刪除,使線性表變為長度為n-1的線性表*/

intdeletelist

(seqlist *l,

int i,

int*e)

if(l->length==0)

*e=l->data[i-1]

;//把要刪除的資料返回

for(

int j=i;j<=l->length-

1;j++

) l->length--

;return1;

}/*修改操作*/

intmodify

(seqlist *l,

int i,

int x)

l->data[i-1]

= x;

//i是下標,比實際存放位置大一

return1;

}int

main()

;int i,x;

seqlist list1;

//初始化順序表

initlist

(&list1);if

(empty

(&list1)

)printf

("給順序表賦值:1、2、3、4、5、6、7、8、9、10\n遍歷並輸出\n");

//建立乙個長度為10的線性表

creatlist

(&list1,a,10)

;//遍歷輸出順序表

printlist

(&list1)

;printf

("\n將100放在第三位:\n");

insertlist

(&list1,3,

100)

;printlist

(&list1);if

(modify

(&list1,3,

50)==1

)if(deletelist

(&list1,4,

&x)==1)

return0;

}

線性表c語言實現

lineartable.h pragma once 線性表的實現 define maxsize 20 define ok 1 define error 2 typedef struct list list t 線性表初始化 void initlist list t list 根據下表查詢資料 int...

線性表C語言實現 除錯

我最近在用c作為入門資料結構的程式語言,使用教材是 大話資料結構 稍微比清華嚴蔚敏寫的易讀。就是有些例子舉的過於通俗了,可以略微刪減一些 或一大段 下面 會把我寫的和書裡寫的對比出來。初學感覺個人程式魯棒性不夠。聽說此書 保持嚴蔚敏 有一些問題。初學者沒看出來。望大家指出。1.線性表linear 定...

線性表 c語言實現(2)

有些方法在上篇 這裡只對 compare locateelem mergelist insrandlinst 和更新的main 作說明。1比較兩個元素是否相等 int compare int e1,int e2 else return0 int locateelem sqlist l,int e r...