C語言下的帶頭節點的順序表

2021-10-02 10:08:34 字數 2330 閱讀 6945

1、建立順序表的結構體

1、建立乙個大小為10的順序表

#define listsize 10

#define true 1

#define false 0

typedef

int elemtype;

typedef

int(

*compare)

(elemtype,elemtype)

;typedef

struct sqlist

sqlist,

*sqlistptr;

2、初始化函式
void

initlist_sq

(sqlistptr sqlist)

//初始化函式

3、判斷順序表是否為滿函式
static

intisfull_sq

(sqlistptr sqlist)

else

}

4、三種不同插入函式(按位置插入、頭插入、尾插入)
int

insertlist_sq_pos

(sqlistptr sqlist,elemtype val,

int pos)

//按位插入

if(pos<

0|| pos>sqlist->length)

int i=sqlist->length;

while

(i>pos)

sqlist->data[i]

=val;

sqlist->length++

;return true;

}int

insertlist_sq_head

(sqlistptr sqlist,elemtype val)

//頭插

int i=sqlist->length;

while

(i !=0)

sqlist->data[i]

=val;

sqlist->length++

;return true;

}int

insertlist_sq_tail

(sqlistptr sqlist,elemtype val)

//尾插

sqlist->data[sqlist->length]

=val;

sqlist->length++

;return true;

}

5、三種刪除方式函式(按位置刪除、頭刪、尾刪)
void

deletelist_sq_pos

(sqlistptr sqlist,

int pos)

//按位置刪除

int i=pos;

while

(ilength-1)

sqlist->length--;}

void

deletelist_sq_head

(sqlistptr sqlist)

//頭刪

sqlist->length--;}

void

deletelist_sq_tail

(sqlistptr sqlist)

//尾刪

6、輸出函式
void

showlist_sq

(sqlistptr sqlist)

//輸出

printf

("\n");

}

7、清空和銷毀函式
void

clearlist_sq

(sqlistptr sqlist)

//清空

sqlist->length=0;

}void

destroylist_sq

(sqlistptr sqlist)

// 銷毀

sqlist->length=0;

}

8、測試用例**
int

main()

showlist_sq

(&sq)

;deletelist_sq_pos

(&sq,4)

;showlist_sq

(&sq)

;clearlist_sq

(&sq)

;showlist_sq

(&sq)

;destroylist_sq

(&sq)

;showlist_sq

(&sq)

;}

帶頭節點的鍊錶

include include includetypedef int type typedef struct node node 建立乙個頭節點並將其指標返回 node node init 列印乙個鍊錶 void node display node head else printf n 找到第n個節...

C語言下的核心鍊錶

二.核心鍊錶 核心鍊錶是一種鍊錶,linux核心中的鍊錶都是用這種形式實現的 1.特性 核心鍊錶是一種雙向迴圈鍊錶,核心鍊錶的節點節點結構中只有指標域 使用核心鍊錶的時候,將核心鍊錶作為乙個成員放入到乙個結構體中使用 我們在鍊錶中找到核心鍊錶結構的位址,通過這個位址就可以找到外部大結構體的位址,通過...

帶頭節點鍊錶的遞迴演算法

include using namespace std typedef class student linklist,link void init link linklist l void input link linklist l,int e 尾插法建立鍊錶 void delete link li...