之前的時候用c語言寫過鍊錶的相關的操作,閒著沒事用c++語言去實現了一下,發現還是c語言用起來比較的痛快
main.cpp檔案:
/*6. 設計並實現乙個集合類intset,集合元素範圍為1~100,要求:
* (1)正確初始化集合;
* (2)支援集合的交集、並集運算;
* (3)判斷乙個指定整數是否在集合中;
* (4)將給定整數加入集合,加入前應判斷數值範圍;
* (5)從集合中刪除指定元素;
* (6)集合物件之間的複製;
* (7)獲得集合元素個數;
* (8)輸出集合中的所有元素;*/
#include #include "inset.h"
using namespace std;
int main()
//向集合中新增元素
bool my_inset::add(int num)
else
t=new node;
t->data=num;
t->pnext=null;
q->pnext=t;
return true; }}
//列印集合中的元素
void my_inset::print()
int my_inset::size()
return num;
}//判斷乙個元素是否存在與審核當中
bool my_inset::is_exit(int num)
}//向集合中插入乙個元素
void my_inset::insert(int num,int pos)
while(cpnext!=null)
r=t->pnext;
t->pnext=a;
a->pnext=r;
/**struct node *a;
a->data=num;
r=t->pnext;
t->pnext=q;
q->pnext=r;*/
}//從集合中刪除乙個元素
void my_inset::delete_set(int num)
for(q=p;q!=null;q=q->pnext)
if(q->pnext->data==num)
break;
q->pnext=q->pnext->pnext;
} //獲取集合當中下標為i的元素的值
int my_inset::get(int num)
return q->data;
} //求集合的交集
void my_inset::intersection(my_inset set2)
} }
set3.print();
}//求集合的並集
void my_inset::union_set(my_inset set2)
else if(this->get(p)get(p));p++;}
else
} else if(p>=m&&q=n)
}set3.print();
}//d對集合進行排序
void my_inset::sort()
} my_inset::my_inset (const my_inset & set) //深度拷貝
}
inset.h檔案:
#ifndef inset_h
#define inset_h
class my_inset
*p; int min;
int max;
public:
my_inset();
bool add(int num);
void print();
int size();
bool is_exit(int num);
void insert(int num,int pos);
void delete_set(int num);
int get(int i);
void intersection(my_inset set2);
void union_set(my_inset set2);
void sort();
my_inset (const my_inset & set);
};#endif
執行效果:
C語言實現鍊錶的相關操作
自己動手寫一遍鍊錶的的一些常見的操作有利於自己對鍊錶這種資料結構的掌握。一下是我自己碼的,進作為參考。鍊錶 struct note include include define num 10 void creat list head struct note 建立乙個單鏈表 前插 void creat...
鍊錶的相關操作
連線兩個迴圈單鏈表 p a next 儲存a表的頭結點位置 a next b next next b的開始結點鏈結到a表尾 free b next b next p return b 注 a,b為已構建好的迴圈鍊錶,具有尾指標 鍊錶中的環附 include include struct node s...
鍊錶,反向鍊錶的相關操作
假設鍊錶節點的資料結構為 struct node 建立單鏈表的程式為 struct node create unsigned int n node p head for unsigned int i 1 i n i return head 問題1 鍊錶逆置 思想為 head指標不斷後移,指標反向即可...