#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 ...