zoukankan      html  css  js  c++  java
  • 1025反转链表

    两个错误不知道怎么改了= =希望有人解答

    提交情况

    代码

    #include<iostream>
    #include<malloc.h>
    #include<iomanip>
    #pragma warning(disable:4996)
    using namespace std;
    
    struct Node
    {
      int address;
      int data;
      int Next;
      struct Node * next;
    };
    
    Node * GetNode(int item, int address, int Next)
    {
      Node* newNode = (Node *)malloc(sizeof(Node));
      if (newNode == NULL)
      {
        printf("overflow!");
        exit(1);
      }
      newNode->Next = Next;
      newNode->address = address;
      newNode->data = item;
      newNode->next = NULL;
      return (newNode);
    }
    
    void InsertAfter(Node *p, Node* nextptr)
    {
      nextptr->next = p->next;
      p->next = nextptr;
    }
    
    Node* DeleteAfter(Node *p)
    {
      Node *t = p->next;
      if (t->next != NULL)
      {
        p->next = t->next;
      }
      else
      {
        p->next = NULL;
      }
      return (t);
    }
    
    int a[100000005][2];
    
    int main()
    {
      //freopen("in.txt", "r", stdin);
      //freopen("out.txt", "w", stdout);
      int hAdd, N, k, i, add, begin = 0;
      Node *head = (Node *)malloc(sizeof(Node));
      Node *p = (Node *)malloc(sizeof(Node));
      Node *del = (Node *)malloc(sizeof(Node));
      Node *rear = (Node *)malloc(sizeof(Node));
      cin >> hAdd >> N >> k;
      for (i = 0; i < N; i++)
      {
        cin >> add;
        cin >> a[add][1] >> a[add][0];
        if (add == hAdd)
        {
          head->next = GetNode(a[add][1], add, a[add][0]);
          begin = a[add][0];
        }
      }
      p = head;
      i = begin;
      while (a[i][0] != -1)
      {
        p = p->next;
        p->next = GetNode(a[i][1], i, a[i][0]);
        i = a[i][0];
      }
      p = p->next;
      p->next = GetNode(a[i][1], i, a[i][0]);
      p = head;
      rear = p->next;
      while (N >= k)
      {
        N = N - k;
        for (i = 0; i < k - 1; i++)
        {
          del = DeleteAfter(rear);
          InsertAfter(p, del);
        }
        p = rear;
        rear = p->next;
      }
      for (p = head->next; p != NULL; p = p->next)
      {
        if (p->next != NULL)
        {
          p->Next = p->next->address;
        }
        else
        {
          p->Next = -1;
        }
        if (p->Next == -1)
        {
          cout << setw(5) << setfill('0') << p->address << " " << p->data << " " << p->Next << endl;
        }
        else
        {
          cout << setw(5) << setfill('0') << p->address << " " << p->data << " " << setw(5) << setfill('0') << p->Next << endl;
        }
      }
      free(head);
      free(p);
      free(del);
      free(rear);
      return 0;
     }
  • 相关阅读:
    TrieTree的学习
    单调队列(monotonic queue)列与单调栈的学习
    507. Perfect Number
    157. Read N Characters Given Read4
    nsexec
    nsenter
    setjmp
    runc 测试
    cgo setns + libcontainer nsexec
    前端 导出为Excel 数据源为table表格 并且table中含有图片
  • 原文地址:https://www.cnblogs.com/Wjianting/p/5543152.html
Copyright © 2011-2022 走看看