首页 > 联发科嵌入式C++写法
头像
牛客661384146号
发布于 2021-07-20 23:01
+ 关注

联发科嵌入式C++写法

刚接触c++一个月,没学过c,就用c++写了,写的很麻烦,就记录一下

#include <algorithm> 
#include <cstdarg>
#include <cstdlib>
#include <ctime>
#include <initializer_list>
#include <iostream>
#include <set>
#include <map>
#include <string>
#include <vector>
#include <unordered_map>
#include <functional>
#include <sstream>

using std::begin;
using std::cin;
using std::cout;
using std::end;
using std::endl;
using std::initializer_list;
using std::istringstream;
using std::map;
using std::max;
using std::pair;
using std::set;
using std::string;
using std::stringstream;
using std::unordered_map;
using std::vector;
struct node {
  int data;
  node *next;
  node *pre;
};
void printChain(node *L) {
  if (L == NULL) {
        printf("error");
  }
  while (L != NULL) {
    cout data << " ";
    L = L->next;
  }
  cout << endl;
}
node *create(vector Array) { 
  node *p, *pre, *head;
  head = new node;
  head->pre = NULL;
  head->next = NULL;
  pre = head;
  for (int i = 0; i != Array.size(); ++i) {  // 构建双向链表
    p = new node;
    p->data = Array[i];
    p->next = NULL;
    p->pre = pre;
    pre->next = p;
    pre = p;
  }
  return head;
}
int main() {
  int num;
  string s1, s2, s3;
  vector chain;
  node *head = new node;
  node *n = new node;
  while (getline(cin, s1)) {
    getline(cin, s2);
    istringstream ss1(s1);
    while (ss1 >> s3) {
      chain.push_back(atoi(s3.c_str()));
    }
    num = atoi(s2.c_str());
    node *L = create(chain);
    head = L;
    L = L->next;
    if (num data) {
      n->data = num;
      n->next = L;
      head->next = n;
      n->pre = head;
      L->pre = n;
    }
    else if (num >= L->data){
      while (L->next != NULL) {
        if (num >= L->data) {
          L = L->next;
        }
        else {
          n->data = num;
          n->next = L;
          L->pre->next = n;
          n->pre = L->pre;
          L->pre = n;
          break;
        }
      }
      if (L->next == nullptr && num >= L->data) {
          n->data = num;
          n->next = nullptr;
          n->pre = L;
          L->next = n;
      }
      else if (L->next == nullptr && num data) {
        n->data = num;
        n->next = L;
        L->pre->next = n;
        n->pre = L->pre;
        L->pre = n;
      }

    }
    printChain(head->next);
    chain.clear();
  }
  return 0;
}

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐