双向链表的操作问题

原创 2018年04月17日 16:45:29
建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。)

输入

第一行:双向表的长度; 
第二行:链表中的数据元素。

输出

输出双向链表中的数据元素的值。

样例输入

10
2 4 6 3 5 8 10 21 12 9

样例输出

2 3 4 5 6 8 9 10 12 21
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<cstdio>
using namespace std;
struct node
{
	int date;
	node *last;
	node *next;
};
int main()
{
	int n;
	while (cin >> n)
	{
		node *p = new node;
		node *s, *q, *t;
		cin >> p->date;
		p->next = NULL;
		s = p;
		for(int i=2;i<=n;i++)
		{
			t = new node;
			cin >> t->date;
			t->next = NULL;
			s->next = t;
			t->last = s;
			s = t;
		}
		for (int i = 1; i <= n; i++)
		{
			t = p;
			while (t != NULL)
			{
				if (t->next != NULL)
				{
					if (t->date > t->next->date)
					{
						int temp = t->date;
						t->date = t->next->date;
						t->next->date = temp;
					}
				}
				t = t->next;
			}
		}
		t = p;
		while (t != NULL)
		{
			cout << t->date << ' ';
			t = t->next;
		}
	}
	return 0;
}

版权声明:本文为博主原创文章,转载注明出处 https://blog.csdn.net/qq_38271800/article/details/79977123

双向链表的基本操作

双向链表的插入顺序: 双向链表的删除顺序: #include #include typedef struct doubleLink { int data;...
  • acm_JL
  • acm_JL
  • 2016-03-21 20:30:42
  • 2444

双向链表的建立与基本操作

双向链表比单链表有更好的灵活性,其大部分操作与线性表相同。下面总结双向链表与单链表之间的不同之处及我在实现过程中所遇到的问题。1.双向链表的建立 双向链表在初始化时,要给首尾两个...
  • kelvinmao
  • kelvinmao
  • 2016-04-02 18:39:40
  • 5622

双向链表的操作

  • 2013年10月02日 15:11
  • 821B
  • 下载

双向链表的创建和相关操作

双向链表其实是单链表的改进。     当我们对单链表进行操作时,有时你要对某个结点的直接前驱进行操作时,又必须从表头开始查找。这是由单链表结点的结构所限制的。因为单链表每个结点只有一个存储直接后继结...
  • jw903
  • jw903
  • 2014-08-30 21:34:58
  • 2369

双链表比较大小

双向链表的操作问题(0960) Time limit(ms): 1000 Memory limit(kb): 10000 Submission: 1559 ...
  • believe__dream
  • believe__dream
  • 2015-03-27 15:50:26
  • 368

双向链表的操作问题

建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。)输入第一行:双向表的长度; 第二行:链表中的数据元素。输出输出双向链表中的数据元素...
  • qq_38271800
  • qq_38271800
  • 2018-04-17 16:45:29
  • 11

双向链表的一些基本操作

双向链表 前面的博客向大家介绍了单链表,我们发现单链表在进行查询、删除、添加、修改链表的值时都需要遍历整个链表,这样无疑增加了对链表操作的时间复杂度。而双向链表由于有一个prev指针,这样可以更快...
  • Cyrus_wen
  • Cyrus_wen
  • 2018-04-06 17:06:29
  • 14

OJ 系列之【中级】双链表基本操作

#include #define null 0 #define MAXSIZE 50struct strlnode { int data; struct strlnode *plast...
  • xy010902100449
  • xy010902100449
  • 2016-02-22 10:38:10
  • 431

双向链表的基本操作

此双向链表有头结点,带环dlinklist.h#define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include &amp;lt;stdio.h&amp;...
  • zyxiaolei
  • zyxiaolei
  • 2018-04-02 15:47:25
  • 6

双向循环链表基本操作(初始化,插入,删除,清空,销毁,访问前驱,后继等)

#include "stdio.h" #include #define OK 1 #define ERROR 0 #define OVER...
  • wfdtxz
  • wfdtxz
  • 2012-11-20 00:19:23
  • 5859
收藏助手
不良信息举报
您举报文章:双向链表的操作问题
举报原因:
原因补充:

(最多只允许输入30个字)