typedef int elemtype;
typedef struct snode
node;
/* 1.初始置空集合,即置表頭指標為空*/
void initset(node*& head)
/* 2.向集合中插入乙個元素,插入這裡在表頭插入*/
bool insertset(node*& head,elemtype item)
if (p==null)
else return false;
/* 3.從集合中刪除乙個元素*/
bool deleteset(node*& head,elemtype item)
else
}if (p==null)
if (q==null)//q==null,表明刪除的是表頭結點
else q->next=p->next;
delete p;
return true;
}/* 4.從集合中查詢乙個元素*/
bool findset(node*& head,elemtype &item)/* item 使用引用型別,為了帶回已查詢到的元素 */
else p=p->next;
}return false;
}/* 5.修改集合中的乙個指定元素*/
bool modifyset(node* head,const elemtype item)
else
p=p->next;
}if (p!=null)
else return false;
}/* 6.判斷乙個元素是否屬於集合*/
bool inset(node* head,elemtype item)
else p=p->next;
}return false;
}/* 7.判斷集合是否為空,為空返回真,否則返回假*/
bool emptyset(node* head)
/* 8.求出集合中元素個數*/
int lenthset(node *head)
return len;
}/* 9.輸出集合中所有元素*/
void outputset(node *head)
coutnode *unionset(node * head1,node * head2)
p=head2;
while (p!=null)
return head;
}/* 11.求兩個集合的交集*/
node *interseset(node *head1,node *head2)
p=p->next;
}return head;
}/* 12.按元素的值或關鍵字對集合排序*/
void sortset(node *&head)
else if (q->datadata)
else
else
}q->next=np;
tp->next=q;}}
head=head1;
}/* 13.清除集合中的所有元素,釋放占有的動態儲存空間*/
void clearset(node *head)
head=null;
}
集合 鏈式儲存的實現
集合的順序儲存是通過陣列來實現的,集合的鏈式儲存是通過儲存結點之間的鏈結來實現的,從而形成鍊錶。鍊錶中的每乙個結點都包含乙個值域和乙個指標 即引用物件域 每個結點的指標指向下乙個結點物件,這樣的鍊錶稱之為單鏈表。在單鏈表中,第乙個結點稱之為表頭結點,指向第乙個結點的指標被稱為表頭指標,最後乙個結點稱...
棧的順序儲存實現及鏈式儲存實現
include include define size 100 typedef int elemtype typedef struct stackstack void init stack s 初始化 intpush stack s,elemtype e 入棧 s s s top e 從s 1 開始...
棧的鏈式儲存及常用操作
水水的實現一下鏈式棧。include include include include using namespace std typedef struct sta stack void createstack stack s 建立乙個帶頭結點的鏈棧 void destroystack stack s...