最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解c/c++鏈式堆棧描述進制轉(zhuǎn)換問題示例

 更新時間:2021年11月18日 10:50:49   作者:xr415  
這篇文章主要為大家介紹了c/c++鏈式堆棧描述進制轉(zhuǎn)換問題示例解析有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

基礎操作需要創(chuàng)建鏈表來存儲數(shù)據(jù)

使用尾插法和尾刪法來表示棧中的入棧和出棧

typedef struct node
{
	int data;
	struct node* next;
}Node,*LPNode;
LPNode creatnode(int data)
{
	LPNode newnode = (LPNode)malloc(sizeof(Node));
	assert(newnode);
	newnode->data = data;
	newnode->next = NULL;
	return newnode;
}
void insertbytail(LPNode &head,int data)
//這里要么傳引用要么傳二級指針因為這里head賦值并沒有對主函數(shù)里面的head改變
{ 
	if (head == NULL)
	{
		head = creatnode(data);
	}
	else
	{
		LPNode newnode = creatnode(data);
		LPNode pmove = head;
		while (pmove->next!=NULL)
		{
			pmove = pmove->next;
		}
		pmove->next = newnode;
	}
}
void deletetail(LPNode head)
{
	LPNode pronode = head;
	if (head == NULL)
	{
		return;
	}
	LPNode posnode = head->next;
	
	if (pronode->next == NULL)
	{
		cout << pronode->data;
		free(pronode);
		return;
	}
	while (posnode->next!= NULL)
	{
		pronode = posnode;
		posnode = posnode->next;
	}
	cout << posnode->data ;
	free(posnode);
	pronode->next = NULL;
}

創(chuàng)建棧結構

typedef struct stack
{
	int top;//用來判斷是否為空
	LPNode head;
}Stack,*LPStack;
//描述一個棧的最初始的狀態(tài)
LPStack creatstack()
{
	LPStack stack = (LPStack)malloc(sizeof(Stack));
	assert(stack);
	stack->top = 0;
	stack->head = NULL;
	return stack;
}

出棧入棧就是表現(xiàn)為鏈式結構的表尾插入和刪除

void push(LPStack stack,int data)
{
	insertbytail(stack->head, data);
	stack->top++;
}
void pop(LPStack stack)
{
	deletetail(stack->head);
	stack->top--;
}

判斷棧是否為空即判斷 top==0

bool empty(LPStack stack)
{
	return stack->top == 0;
}

代碼實現(xiàn)

int main()
{
	LPNode head = NULL;
	LPStack stack = creatstack();
	int n;
	int num;
	cin >> num;//表示數(shù)
	cin >> n;//表示進制
	while (num)
	{
		push(stack,num%n );
		num /= n;
	}
	while (!empty(stack))
	{
		pop(stack);
	}
	
	return 0;
}

以上就是c/c++鏈式堆棧描述進制轉(zhuǎn)換問題示例解析的詳細內(nèi)容,更多關于c/c++鏈式堆棧描述進制轉(zhuǎn)換的資料請關注腳本之家其它相關文章!

相關文章

  • C語言實現(xiàn)linux網(wǎng)卡連接檢測的方法

    C語言實現(xiàn)linux網(wǎng)卡連接檢測的方法

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)linux網(wǎng)卡連接檢測的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • C++ 搬水果貪心算法實現(xiàn)代碼

    C++ 搬水果貪心算法實現(xiàn)代碼

    這篇文章主要介紹了C++ 搬水果貪心算法實現(xiàn)代碼的相關資料,需要的朋友可以參考下
    2017-06-06
  • C/C++利用篩選法算素數(shù)的方法示例

    C/C++利用篩選法算素數(shù)的方法示例

    這篇文章主要給大家介紹了關于利用C/C++篩選法算素數(shù)的相關資料,文中給大家列舉了普通枚舉法和篩選法兩種方法實現(xiàn)的方法示例,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-12-12
  • c++讀取和寫入TXT文件的整理方法

    c++讀取和寫入TXT文件的整理方法

    今天小編就為大家分享一篇c++讀取和寫入TXT文件的整理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • C++實現(xiàn)簡單通訊錄系統(tǒng)

    C++實現(xiàn)簡單通訊錄系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單通訊錄系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言的預處理介紹

    C語言的預處理介紹

    大家好,本篇文章主要講的是C語言的預處理介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 一文讀懂C++中Protobuf

    一文讀懂C++中Protobuf

    Protocol Buffers 是一種輕便高效的結構化數(shù)據(jù)存儲格式,可以用于結構化數(shù)據(jù)串行化、或者說序列化,本文詳解了Protobuf的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • Qt中QPainter與坐標的使用

    Qt中QPainter與坐標的使用

    本文主要介紹了Qt中QPainter與坐標的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 一問了解C++ 的移動語義

    一問了解C++ 的移動語義

    本文主要介紹C++ 的移動語義,移動語義并不是一個容易理解的概念,很多程序員可能對其存在一定的疑惑,今天我們就來探討一下 C++ 中的移動語義
    2023-04-04
  • C++的深淺拷貝和寫時拷貝你了解嗎

    C++的深淺拷貝和寫時拷貝你了解嗎

    這篇文章主要為大家詳細介紹了C++的深淺拷貝和寫時拷貝,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論

昭苏县| 莱阳市| 富裕县| 平顺县| 丘北县| 九龙城区| 宜君县| 舟曲县| 山阴县| 正定县| 兴隆县| 大安市| 沁阳市| 东方市| 潼关县| 买车| 普兰县| 屏东市| 突泉县| 通道| 彭水| 旺苍县| 寻乌县| 固镇县| 吉水县| 滨州市| 麻城市| 石台县| 辛集市| 偃师市| 玉环县| 化州市| 宁陵县| 望奎县| 台南市| 闸北区| 炎陵县| 龙口市| 那坡县| 德清县| 平江县|