输入数字插入有序数组

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

#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排序,最后顺序输出或逆序输出就好了。
而我只会想着找到元素应该插入的位置放进去,最后输出原数组。。一开始用数组没有写好,然后并没有换一种思路,而是想着用链表解。。。一道简单的题写了好长时间,大费周章,情况好的话能用最原始的方法解出来,情况不好遇到了稍难的题目我就完全想不出来,这就是我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值