91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-12
  • 語言: C/C++
  • 標簽: 集合??C++??運算??

資源簡介

1.編制一個能演示執行集合的并、交和差運算的程序。 2.集合的元素限定為小寫字母符[′a′….′z ′],集合的大小n<27。 3.集合輸入的形式為一個以"回車符"為結束標志的字符串,串中字符順序不限,且允許出現重復字符或非法字符,程序應能自動濾去。 4.輸出的運算結果字符串中將不含重復字符或非法字符。 5.演示程序以用戶和計算機的對話方式執行。

資源截圖

代碼片段和文件信息

//?集合的并交差運算.cpp?:?定義控制臺應用程序的入口點。

// 編寫環境:VS2013

#include?“stdafx.h“
#include?“stdio.h“ //提供清除輸入緩存的函數
#include //提供設置輸出格式的函數
#include?

using?namespace?std;

#define?SIZE?sizeof(Node)?
#define?FALSE?0?
#define?TRUE?1?

//定義節點結構
typedef?struct?Node{
char?data;
Node?*next;
}Node?*linkList;

//檢查選定字符能否添加到集合中
int?Check(char?ch?linkList?Head)
{
Node?*temp?=?Head->next;
int?flag?=?TRUE;
while?(temp?!=?NULL)
{
if?(temp->data?==?ch){
//選定字符不能插入集合中
flag?=?FALSE;
return?flag;
}
temp?=?temp->next;
}
return?flag;
}

//檢查集合A中的元素,集合B中是否存在?
int?IsExist(char?data?linkList?Head)
{
Node?*pt?=?Head->next;
int?flag?=?FALSE;
while?(pt?!=?NULL)
{
if?(pt->data?==?data)
//已存在
return?flag?=?TRUE;
pt?=?pt->next;
}
return?flag;
}

//檢查集合A中的元素,集合B中是否存在
int?IsExist2(char?data?linkList?Head)
{
Node?*p?=?Head->next;
int?flag?=?FALSE;
while?(p?!=?NULL)
{
if?(p->data?==?data)
return?flag;
p?=?p->next;
}
return?flag?=?TRUE;
}

//初始化集合?
linkList?InitlinkList()
{
int?i?=?1;
int?ch_1;
char?ch;
linkList?Head?=?(Node*)malloc(SIZE);
Head->data?=?‘\0‘;?Head->next?=?NULL;
Node?*p?=?Head;
cin?>>?ch;
//?‘#’?手動終止輸入,當輸入滿26個字符時,自動終止輸入
while?(ch?!=?‘#‘?&&?i?<=?26)
{
ch_1?=?(int)ch;

//只錄入26個小寫字母,實現輸入過濾
if?(ch_1?<=?122?&&?ch_1?>=?97){
if?(Check(ch?Head)?==?TRUE)
{
i++;
Node?*newNode?=?(Node*)malloc(SIZE);
newNode->data?=?ch;
cout?< p->next?=?newNode;
p?=?newNode;
p->next?=?NULL;
}
else
{
cout?< }
}
else
{
cout?< }
if?(i?==?26)
{
cout?< }
cin?>>?ch;
}
p->next?=?NULL;

//清空輸入緩存數據,防止多余輸入內容滿溢到下一個集合
fflush(stdin);
cout?< return?Head;
}

//將表中元素進行排序?
void?Sort(linkList?head)
{
Node?*p?=?head->next?*q?*r;
if?(p?!=?NULL)
{
r?=?p->next;
p->next?=?NULL;
p?=?r;
while?(p?!=?NULL)
{
r?=?p->next;
q?=?head;
while?(q->next?!=?NULL&&q->next->datadata)
q?=?q->next; //在有序表中查找插入*p的前驅結點*q
p->next?=?q->next; //將*p插到*q之前
q->next?=?p;
p?=?r;
}
}
}

//集合并運算
linkList?Merge(linkList?Head1?linkList?Head2)
{
linkList?Head?=?(Node*)malloc(SIZE);
Head->data?=?‘\0‘;?Head->next?=?NULL;
Node?*p1?=?Head1->next;
Node?*p2?=?Head2->next;
Node?*p?=?Head;

while?(p1?!=?NULL&&p2?!=?NULL)
{
if?(p1->data?==?p2->data)
{
if?(Check(p1->data?Head)?==?TRUE)
{
Node?*newNode?=?(Node*)malloc(SIZE);
newNode->data?=?p1->data;
p->next?=?newNode;
p?=?newNode;
p->next?=?NULL;
}
}
else
{
if?(Check(p1->data?Head)?==?TRUE)
{
Node?*newNode?=?(Node*)malloc(SIZE);
newNode->data?=?p1->data;
p->next?=?newNode;
p?=?newNode;
p->next?=?NULL;
}
if?(Check(p2->data?Head)?==?TRUE)

評論

共有 條評論