線性表C語言實現 除錯

2021-07-28 19:32:04 字數 2513 閱讀 6579

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

1.線性表linear

定義結構體

//葉大叔第一次資料結構:線性表linear

//c語言實現

#include #define maxzin 20

#define state int //之後函式返回型別可以任改

#define ok 1

#define error0 0

#define error1 -1

#define error2 -2

typedef structlinear;//定義結構體,取名linear:線性表

教材**

typedef int elemtype;

typedef struct sqlist;

獲取元素**

state getelement(linear l,int i,state *p)//獲得結構體,位置資訊,指標用於顯示時用

} //o(n)= 1 高效

教材獲取元素**

status getelem(sqlist l,int i,elemtype *e)

//o=1

插入元素**

state insertelement(linear *l,int i,state p)//i為位置資訊,插入數在i~i+1之間,p為插入數

l->a[i-1] = p;

l->length++;

return ok;

} } //o(n) = n

教材插入**

status listinsert (sqlist *l,int i,elemtype e)

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

l->length++;

return ok;

}//o=n

刪除元素**

state deleteelement(linear *l,int i)//i為位置資訊

l->length--; 

}return ok;

} //o(n)= n 

教材刪除元素**

status listdelete(sqlist *l,int i,elemtype *e)

l->length--;

return ok;

}//o=n

總**+很醜的測試

//葉大叔第一次資料結構:線性表linear

//c語言實現

#include #define maxzin 20

#define state int //之後函式返回型別可以任改

#define ok 1

#define error0 0

#define error1 -1

#define error2 -2

typedef structlinear;//定義結構體,取名linear:線性表

state getelement(linear l,int i,state *p)//獲得結構體,位置資訊,指標用於顯示時用

} //o(n)= 1 高效

/*反思:並沒有考慮最開始length為0的情況 */

state insertelement(linear *l,int i,state p)//i為位置資訊,插入數在i~i+1之間,p為插入數

l->a[i-1] = p;

l->length++;

return ok;

} } //o(n) = n

state deleteelement(linear *l,int i)//i為位置資訊

l->length--;

} return ok;

} //o(n)= n

//少設計了乙個功能

int main(void)

,5};

linear *l = &big_uncle;

int *p=null,i;

i = 0;

p = &i;//大叔不知道為什麼只能這樣操作,而不能直接指向null ??

insertelement(l,2,520);

deleteelement(l,2);

getelement(big_uncle,2,p);

printf("%d",*p);

return 0;

}

線性表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語言實現線性表

include include define maxsize 100 定義線性表最大長度 定義順序表 typedef struct seqlist 初始化順序表 void initlist seqlist l 建立順序表 intcreatlist seqlist l,int a,int n for ...

線性表 c語言實現(2)

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