C語言 順序表 鍊錶 佇列 棧 及基本操作

2021-10-11 00:16:22 字數 3429 閱讀 7023

#include

#include

#include

typedef

struct vectorvector;

vector *

init

(int n)

intexpand

(vector *vec)

if(extr_size ==0)

return0;

vec->data = p;

vec->size +

= extr_size;

return1;

}int

insert

(vector *vec,

int ind,

int val)

for(

int i = vec->length; i > ind; i++

) vec->data[ind]

= val;

vec->length +=1

;return1;

}int

erase

(vector *vec,

int ind)

vec->length -=1

;return1;

}void

output

(vector *vec)

printf

("]\n");

return;}

void

clear

(vector *vec)

intmain()

output

(vec)

;return0;

}

#include

#include

#include

typedef

struct listnodelistnode;

typedef

struct listlist;

void

reverse

(list *l)

;listnode *

init_node

(int val)

//head為虛擬頭結點,資料字段無意義,只代表煉表頭

list *

init_list()

void

clear_node

(listnode *node)

//不斷地用q標識p下乙個節點,然後銷毀p

void

clear

(list *l)

}//2種特殊情況,p始終標識待插入的前乙個位置,如果ind=0,p就是頭結點(第1個元素前)

intinsert

(list *l,

int ind,

int val)

//頭插法

void

reverse

(list *l)

return;}

//同理,q標識待刪除節點,p標識待刪除的前一節點

interase

(list *l,

int ind)

void

output

(list *l)

printf

("null]\n");

return;}

intmain()

output

(l);

reverse

(l);

output

(l);

}

//由於迴圈佇列很難判定佇列滿,若是front=rear或front>rear,則和隊空情況一致

//因此引入計數變數,計算已存入佇列的元素個數

#include

#include

#include

typedef

struct queuequeue;

queue *

init

(int n)

intfront

(queue *q)

/*int tail(queue *q)

*/void

clear

(queue *q)

//tail指向待插入元素的位置,即當前元素的後乙個位置

//判斷隊空

intempty

(queue *q)

//入隊

intpush

(queue *q,

int val)

//expand

q->data[q->tail++

]= val;

if(q->tail == q->length) q->tail =0;

q->cnt ++

;return1;

}//出隊

intpop

(queue *q)

//int expand(queue *q){}

//列印元素

void

output

(queue *q)

printf

("]\n");

return;}

intexpand

(queue *q)

intmain()

#undef max_op

return0;

}

#include

#include

#include

typedef

struct stackstack;

stack *

init

(int n)

void

clear

(stack *s)

inttop

(stack *s)

intempty

(stack *s)

intpush

(stack *s,

int val)

intpop

(stack *s)

void

output

(stack *s)

printf

("]\n");

return;}

intmain()

}

int

expand()

if(p==

null

)return0;

//空間開闢成功

for(

int i = q->head, j =

0; j < q->cnt; j++

)free

(q->data)

; q->data = p;

q->length +

= extr_size;

q->head =0;

q->tail = q->cnt;

return1;

}

順序表,鍊錶,棧,佇列 Java表示

不確認完全正確,主要看邏輯 package com.datastruct.list public class sequencelist 長度獲取 public intgetlength 是否為空 public boolean isempty else 是否已滿 public boolean isfu...

順序表 佇列C語言的基本操作

佇列也是操作受限的線性表,採用先進先出的方式 佇列也有兩種儲存方式分別為順序順序和鏈式儲存 佇列的順序表示 使用一位陣列 下面是佇列的定義 迴圈佇列在邏輯上實現了頭尾相連,不會出現假溢位 define qelemtype int define maxsize 100 typedef struct s...

棧 佇列 鍊錶

includestruct queue int main while q.head includeint main maxvalue temp maxvalue temp maxvalue temp 0 for int j 1 j len j maxvalue temp maxvalue temp ...