输入数字插入有序数组

文章描述了一位程序员在解决编程问题时,使用了创建链表、判断顺序或逆序以及插入元素的方法,而不是直接使用数组和排序函数。作者对自己的思维方式进行了反思,认为在面对较复杂问题时,可能会受限于过于基础的解题策略。
摘要由CSDN通过智能技术生成

有点舍不得我的原始代码,存档一下。

#include<iostream>
using namespace std;

typedef int ElementType;
typedef struct Node* PtrToNode;
typedef struct Node {
	ElementType data;
	PtrToNode Next;
}* List;

int main() {
	List L = (List)(malloc(sizeof(struct Node)));
	List r = L;
	for (int i = 0; i < 9; i++) {
		List p = (List)(malloc(sizeof(struct Node)));
		cin >> p->data;
		r->Next = p;
		r = p;
	}

	int X;
	cin >> X;
	r = L->Next;
	bool flag = true;//默认逆序
	if (r->data < r->Next->data) flag = false;//false是顺序
	List p = (List)(malloc(sizeof(struct Node)));
	p->data = X;
	r = L->Next;
	for (int i = 0; i < 10; i++) {
		if ((r->Next->data > X && flag == false) || (r->Next->data < X && flag)) {
			p->Next = r->Next;
			r->Next = p;
			r = p;
			break;
		}
		r = r->Next;
	}

	r = L->Next;
	for (int i = 0; i < 10; i++) {
		cout << r->data << endl;
		r = r->Next;
	}
}

最后发一下神经我好难过因为我拥有比钢筋还直的死脑筋。。。
看了别人写的答案,这一题判断好是顺序还是逆序之后直接把输入的元素放在数组里,用sort排序,最后顺序输出或逆序输出就好了。
而我只会想着找到元素应该插入的位置放进去,最后输出原数组。。一开始用数组没有写好,然后并没有换一种思路,而是想着用链表解。。。一道简单的题写了好长时间,大费周章,情况好的话能用最原始的方法解出来,情况不好遇到了稍难的题目我就完全想不出来,这就是我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值