資料結構 借助棧的排序演算法

2021-09-26 01:56:09 字數 758 閱讀 4369

題目:設有乙個元素型別為整型的棧s,設計乙個演算法,借助另乙個棧實現把該棧的所有元素從棧頂到棧底按從小到大次序排列起來

思想:將大於棧頂元素就出棧,然後存入原來的棧中,直到棧頂元素不小於當前要插入的元素。

**實現:

#include #include #include #define maxsize 100

/* * 題目:設有乙個元素型別為整型的棧s,設計乙個演算法,借助另乙個棧實現把該棧的所有元素從棧頂到棧底按從小到大次序排列起來

* */

typedef struct

sqstack;

void initstack(sqstack &s)

int stackempty(sqstack s)

else

}void push(sqstack &s,int &x)

s.top++;

s.data[s.top] = x;

}void pop(sqstack &s,int &x)

x = s.data[s.top--];

}int gettop(sqstack s,int &x)

x = s.data[s.top];

return 1;

}void print(sqstack s)

printf("\n");

}void dispose()}}

print(q);

}int main()

資料結構演算法 棧

棧是一種操作受限的線性表,在我們平時的日常生活中,可以看到許多與之相似的場景。比如一層一層疊起來的盤子,我們網上疊的時候,是乙個個乙個向上疊加,我們在取的時候,也是從最上面乙個乙個拿走。不能從中間直接抽取 這種滿足先進者後出,後進者先出的就是棧結構 因為只允許在一端插入和刪除,所以這是一種操作受限的...

資料結構 排序演算法

include include define maxitem 100 typedef char keytype 5 typedef int elemtype typedef struct rec elemnode maxitem 氣泡排序演算法 void bubblesort elemnode r,...

資料結構 排序演算法

排序演算法分為內部排序和外部排序兩大類。內部排序 在計算機記憶體中完成的排序演算法 外部排序 不能再記憶體中文完成,必須在磁碟或者磁帶上完成的排序演算法 內部排序是研究的重點問題,通常我們講的八大排序演算法也主要是講的內部排序演算法。排序演算法的穩定性和時間空間複雜度 本文重點介紹以下幾種排序演算法...