在一組資料(數目不超過
10000
)中,插入新數,刪除所有與給定數相等的資料。
輸入
第一行是未排序的一組非負整數,數目不超過10000
。以-1
作為結束標誌。
第二行是要插入的數。
第三行是要刪除的數。
輸出
第一行輸出自小到大排好序的數。如果沒有元素,輸出「
no elements.
」(不包括引號)。
第二行輸出插入後自小到大排好序的數,以「
,」隔開。
第三行輸出刪除後自小到大排好序的數,以「
,」隔開。如果沒有元素,輸出「
no elements.
」(不包括引號)。
樣例輸入
100 98 79 63 44 99 -1
8879
樣例輸出
44,63,79,98,99,100
44,63,79,88,98,99,100
44,63,88,98,99,100
//1014
#include #include using namespace std;
typedef struct lnode
lnode,*linklist;
int sort(linklist &l)
linklist end,p,pre;
int temp;
pre=l->next;
p=pre->next;
end=l->next;
while(end)
while(p!=end)
pre=pre->next;
p=p->next;
} end=pre;
pre=l->next;
p=pre->next;
} return 0;
}//冒泡 或者找出最大的重新插入
int insert(linklist &l,int e)
q=(linklist)malloc(sizeof(lnode));
q->data=e;
q->next=pre->next;
pre->next=q;
return 0;
}int delete(linklist &l,int e)
else
}return i;
}int print(const linklist &l)
coutwhile(1)
p=(linklist)malloc(sizeof(lnode));
p->data=i;
p->next=l->next;
l->next=p;
} cin>>e;
cin>>m;
sort(l);
print(l);
insert(l,e);
print(l);
if(delete(l,m)!=0)
else
{ cout<<"no elements."<
ps:切忌將指標與一未定義的指標進行比較 因為結果不知道會發生什麼 哎 資料結構都忘了 又要重新看了 演算法效率仍然不高
向量的插入與刪除
向量是由具有相同資料型別的資料元素組成的線性表。下面是用c 實現的向量的插入與刪除,供參考。include include define maxsize 100 const int maxsize 100 typedef int datatype datatype的型別可根據具體情況而定 typed...
堆的插入與刪除
首先宣告此堆為小堆。小堆與大堆 相似,原理相似 小堆的插入 在已經建成的最小堆的後面插入要插入的新元素,插入之後,當節點不滿足小堆的性質時,對對重新進行向下調整。關於為何用新元素插入最後,就我個人而言,是為了減少調整次數,畢竟若新元素放在後面恰巧滿足堆的性質就不需要調整,總體而言,調整次數減少 若將...
堆的刪除與插入
每次刪除的一定都是堆頂的元素 具體步驟如下 將堆頂的元素與堆中的最後乙個元素交換 將堆中的有效元素減一 對堆頂的元素進項向下調整。因為第一步交換之後可能導致對不滿足大堆 小堆的性質 示例 每次刪除的是堆頂的元素 intpoll private void shiftdown int parent 檢測...