資料的插入與刪除

2021-06-22 03:08:32 字數 1737 閱讀 1413

在一組資料(數目不超過

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 檢測...