精华内容
下载资源
问答
  • 解决方案:为每个form-item绑定 data-id属性,值为后台传入的序号,再用sortable.js的sort()方法进行排序。 1.HTML代码 <el-form :model="form" :rules="rules" ref="formAdd&...

    需求描述: 前端代码写的顺序是:用户账号、用户姓名、手机号码,需求想对此进行灵活排序。

    解决方案:为每个form-item绑定 data-id属性,值为后台传入的序号,再用sortable.js的sort()方法进行排序。

     

    1.HTML代码 

    <el-form :model="form" :rules="rules" ref="formAdd" id="formAdd">
                  <el-form-item label="用户账号" :label-width="formLabelWidth" prop="userName" :data-id="3">
                    <el-input v-model="form.userName" autocomplete="off"></el-input>
                  </el-form-item>
                  <el-form-item label="用户姓名" :label-width="formLabelWidth" prop="personalName" :data-id="2">
                    <el-input v-model="form.personalName" autocomplete="off"></el-input>
                  </el-form-item>
                  <el-form-item label="手机号码" :label-width="formLabelWidth" prop="phone" :data-id="1">
                    <el-input v-model="form.phone" autocomplete="off"></el-input>
                  </el-form-item>
    </el-form>

    注意:data-id属性,即为sortable 对象 toArrary()方法得到的顺序,这里为[3,2,1]

    2. JS代码 

       先引入sortable.js,在节点渲染完毕后,JS代码如下:

             let body =  document.getElementById('formAdd');
            var sortable = Sortable.create(body)
            var order = sortable.toArray();
            console.log(order)//[3,2,1]
            sortable.sort(order.sort()); // apply

    用sortable对象的sort()方法即可对节点进行排序。

    3.排序前后对比图

    排序前:

     排序后

    展开全文
  • (2)按照学号该链表进行升序排序,要求采用冒泡法,而后进行输出。在主函数中分别调用创建、排序和输出函数。2. 问题的解决方案:根据问题描述,首先创建链表,不仅要给各个结点输入数据,更重要的是要建立起...
    1.	问题描述: 
    (1)建立单向链表,每个结点包括:学号,姓名,性别。(2)按照学号对该链表进行升序排序,要求采用冒泡法,而后进行输出。在主函数中分别调用创建、排序和输出函数。2.	问题的解决方案:根据问题描述,首先创建链表,不仅要给各个结点输入数据,更重要的是要建立起前后结点相互联结的关系。可同时设置3个指针变量,head、p、q,它们都是结构类型的指针,分别代表表头、新建结点和表尾结点。使用new操作符开辟新的存储空间,用来存放新结点。而后对该链表进行升序排列,排序时指针要进行互换,没有数据交换时进行结点的访问。四、主要技术问题的描述根据三的分析,主要问题在于链表的创建以及排序过程中指针的指向。如需要创建N=5个结点,if(i==1)    head=p1;     //将链表中第一个新建结点作为表头elsep2->next =p1;p2=p1;p1=new(STUDENT);cin>>p1->stu_number >>p1->name >>p1->sex >>p1->age;    p2->next =NULL;   //最后一个结点的next成员不指向任何结点排序时,设置三个结构指针m、s、p来记录位置,m=head;	p=head->next;	s=p->next;若不需要交换,指针依次向后移动:m=p; p=s;s=s->next;如果需要进行交换,则:p->next=s->next;     s->next=p;m->next=s;m=s;s=p->next;将两个非递减的链表合并成一个新的非递减的链表。
    
    
    #include <iostream>
    #include <string>
    using namespace std;
    typedef struct node
    {
    char ID[20];
    char name[30];
    char gender[10];
    int age;
    node *next;
    }student;
    void print(student *head)
    {
    student *p=head;
    while(p->next != NULL)
    {
    cout<<p->next->ID<<" "<<p->next->name<<" "<<p->next->gender<<" "<<p->next->age<<endl;
    p=p->next;
    }
    cout<<endl;
    }
    void create(student *head)
    {
    cout<<"请依次输入学生的学号 姓名 性别 年龄,输入学号为#时结束"<<endl;
    char ID[20];
    student *p=head;
    while(1)
    {
    cin>>ID;
    if(strcmp(ID,"#")==0)
    break;
    student *q=new student();
    strcpy(q->ID,ID);
    cin>>q->name>>q->gender>>q->age;
    q->next=p->next;
    p->next=q;
    p=q;
    }
    cout<<"链表创建完成!"<<endl<<endl;
    }
    void sort(student *head)
    {
    student *m=head;
    if(head->next==NULL || head->next->next==NULL)
    {
    cout<<"链表排序完成!"<<endl<<endl;
    return;
    }
    student *p=head->next;
    student *s=p->next;
    student *k=NULL;
    while(k != head->next->next)
    {
    while(s!=k)
    {
    if(strcmp(p->ID,s->ID) > 0)
    {
    p->next=s->next;     
    s->next=p;
    m->next=s;
    m=s;s=p->next;
    }
    else
    {
    m=p;
    p=s;
    s=s->next;
    }
    }
    k=p;
    m=head;
    p=m->next;
    s=p->next;
    }
    cout<<"链表排序完成!"<<endl<<endl;
    }
    int main()
    {
    int order;
    student *head=new student();
    head->next=NULL;
    while(1)
    {
    cout<<"请输入命令序号:"<<endl<<"1.创建链表"<<endl<<"2.排序链表"<<endl<<"3.输出链表"<<endl<<"4.退出"<<endl;
    cin>>order;
    switch(order)
    {
    case 1:create(head);break;
    case 2:sort(head);break;
    case 3:print(head);break;
    case 4:return 0;
    }
    }
    }


    展开全文
  • 要求:按照type属性json数据进行排序,没有子节点(type=0)的排在前面 1.初始效果图和排序后效果图   1.嵌套子节点的json数据: var data = [{"id":1,"name":"陕西省","type":1,children:  

    项目中要求tree型的json数据按照json的某个字段对子节点进行排序,自己花时间写了写,整理如下:

    要求:按照type属性对json数据进行排序,没有子节点(type=0)的排在前面

    1.初始效果图和排序后效果图

         

    1.嵌套子节点的json数据:

    var data = [{"id":1,"name":"陕西省","type":1,children:
                     [ {"id":11,"name":"延安市","type":0,"state":"open"},
                       {"id":12,"name":"西安市","type":1,children:
                         [ {"id":121,"name":"长安区","type":1,children:
                            [{"id":1211,"name":"蓝田镇","type":1,children:
                              [
                               {"id":12113,"name":"武安村","type":1,children:
                                 [{"id":121131,"name":"456号","type":1},
                                  {"id":121132,"name":"458号","type":0},
                                  {"id":121133,"name":"477号","type":0}
                                 ]
                               },
                               {"id":12111,"name":"爱丽村","type":1,"state":"closed"},
                               {"id":12112,"name":"玫瑰村","type":0}
                              ]
                             },
                             {"id":1212,"name":"西斯镇","type":0}
                            ]
                         }, 
                           {"id":122,"name":"雁塔区","type":0},
                           {"id":123,"name":"莲湖区","type":0}
                         ]
                       },
                       {"id":13,"name":"宝鸡市","type":0,"state":"closed"},
                       {"id":14,"name":"汉中市","type":0,"state":"closed"},
                       {"id":15,"name":"渭南市","type":1,children:
                         [ {"id":151,"name":"临渭区","type":1,children:
                             [ {"id":1511,"name":"前进路","type":0},
                               {"id":1512,"name":"东风街","type":0},
                               {"id":1513,"name":"西四路","type":0}
                             ]
                           },
                           {"id":152,"name":"大荔县","type":0},
                           {"id":153,"name":"华县","type":0}
                         ]
                       }
                     ]
                   }]
    2.排序函数

    $(function(){
            $("#tree").tree({
              data:data,
              formatter:function(node){
                return node.name;
              },
              loadFilter:function(data){
              var len = data.length;
              for(var i = 0;i < len;i++){
                //使用匿名函数
               (function(){
                //arguments[0]指的是函数的第一个参数,此处为data[0],即陕西省这一父节点的json格式数据
               var jsonArray = arguments[0];
               for(var k in jsonArray){
               //排序的条件:①存在子节点②子节点的个数大于1
                if(k.indexOf('children')!=-1&&jsonArray[k]!=null){
                  if(jsonArray[k].length>1){
                     jsonArray[k] = jsonArray[k].sort(function(a,b){
                         return a.type > b.type? 1 : -1;
                    });
                 }
                 console.log("递归前");
                 //递归的条件①有子节点②父节点的类型为1
                 console.log(jsonArray);
                 if(jsonArray[k].length>0&&jsonArray.type==1){
                   console.log("递归");
                    for(var j = 0;j<jsonArray[k].length;j++){             
                       //子节点类型如果为0,退出本次循环 
                       if(jsonArray[k][j].type==0){
                           continue;
                       }
                       console.log("diguio");
                      //递归调用匿名函数
                      arguments.callee(jsonArray[k][j]);
                   } 
                 }
              }         
          }
        })(data[i]);
             return data;
        }                  
      }
      });
     });

    展开全文
  • C语言链表节点排序

    千次阅读 2019-05-07 19:54:45
    初次用到链表的排序还是在C语言课程设计上,当时想着要把代码发到CSDN上,结果一拖再拖到现在。 我的课程设计项目为“学生成绩管理系统”,所用链表为双向链表链表。 涉及到成绩管理则避免不了成绩的排序。 结构体中...

    初次用到链表的排序还是在C语言课程设计上,当时想着要把代码发到CSDN上,结果一拖再拖到现在。

    我的课程设计项目为“学生成绩管理系统”,所用链表为双向链表链表。
    涉及到成绩管理则避免不了成绩的排序。
    结构体中的项目包括:

    1. 学生成绩;
    2. 学生姓名;
    3. 学生学号;
    4. 结构体的头指针与尾指针;
      先创建结构体:
    #include"stdio.h"
    #include"stdlib.h"
    #include"string.h"
    struct student
    {
    	struct student *ahead;
    	float grade[10];
    	char name[10];
    	char x[10];
    	struct student *next;
    }*head, *end, *New, *get, *stu;
    

    设置head指针和end指针。head指向头结点,end始终指向尾节点。
    输入数据:

    int input(int N, char **G)//数据输入
    //变量说明:“N”为考试的科目数量,此处**G为字符串指针数组,其中存储着考试科目。
    {
    	int i, c = 1, icount = 0, s[10], j, k, d;
    	char r[10];
    	for (j = 0; j < 10; j++)
    		s[j] = 0;
    	while (c)
    	{
    		New = (struct student *)malloc(sizeof(struct student));
    		printf("\t\t输入该名学生姓名(结束请按‘0’):");
    		scanf("%s", New->name);
    		if (New->name[0] != 48)
    		{
    			printf("\t\t输入该名学生学号:");
    			scanf("%s", r);
    			icount++;
    			strcpy(New->x, r);
    			New->grade[N] = 0;
    			for (i = 0; i < N; i++)
    			{
    				printf("\t\t%s成绩:", G[i]);
    				scanf("%f", &New->grade[i]);
    				if (New->grade[i] < 60)
    					s[i]++;
    				New->grade[N] = New->grade[N] + New->grade[i];
    			}
    			strcpy(New->mima, "1234");
    			end->next = New;
    			New->ahead = end;
    			end = New;
    			end->next = NULL;
    		}
    	}
    	else
    	{
    		c = 0;
    	}
    }
    

    链表已经创建完成,现在只需要向其中添加数据,下一步祭出我屌炸天 的链表节点排序代码?
    此代码运用简单选择排序的排序方法。即,先比较两个节点中数据的大小,并两个选中较大或较小的一个。并让选中的节点与下一个节点中的数据比较直到最后一个节点。比较完毕后将最小的节点接到链表的最后。
    当然,开始排序之前,我创建了一个空节点让其存储成绩的数组的每一个元素都等于“-1”将其接到了链表的最后作为新的有序链表与旧的无序链表的边界。在排序完毕后程序自动将此空节点删除。得到的就是新的有序数组。

    1.排序前的准备阶段(假设此处为升序排序)

    主要步骤为:

    1. 创建三个结构体指针“ *min”、“*xunow”、“ *uend”;
    2. uend就是我添加的边界空指针;
    int paixu(int N)//成绩排序
    {
    	int i;//在程序的后便会让用户选择升序还是降序排序,变量i的作用是根据i的值选择排序方式。若i为1则降序排列,0则升序排列
    	struct student *min, *xunow, *uend;
    	uend = (struct student *)malloc(sizeof(struct student));
    	uend->grade[0] = -1;
    	uend->next = NULL;
    	uend->ahead = end;
    	end->next = uend;
    

    2.排序执行阶段

    上一步中创建的三个结构体指针已经用掉了一个,在这一步中“min”代表比较值最小的节点。"xunow"表示当前与min节点比较的节点。

    1. 通过简单选择排序找出旧链表中的最小值节点;
    2. 将此最小值节点接到链表的最后;
    printf("\n\t\t升序排序(0)     降序排序(1)\n\t\t");
    	scanf("%d", &i);
    	for (min = head->next; min->next->grade[0] != -1; min = head->next)
    	{
    		xunow = min->next;
    		if (i == 0)
    		{
    			do
    			{
    				if (xunow->grade[0] < min->grade[0])
    				{
    					min = xunow;
    				}
    				xunow = xunow->next;
    			} while (xunow->next->grade[0] != -1 && xunow->grade[0] != -1 && min->next->grade[0] != -1);
    			min->ahead->next = min->next;
    			min->next->ahead = min->ahead;
    			min->ahead = uend;
    			uend->next = min;
    			uend = min;
    		}
    		else
    		{
    			do
    			{
    				if (xunow->grade[0] > min->grade[0])
    				{
    					min = xunow;
    				}
    				xunow = xunow->next;
    			} while ( xunow->grade[0] != -1 && min->next->grade[0] != -1);
    			min->ahead->next = min->next;
    			min->next->ahead = min->ahead;
    			min->ahead = uend;
    			uend->next = min;
    			uend = min;
    		}
    		
    	}
    

    3.排序完成收尾阶段

    在执行完上步代码后,表明排序基本完成。按照步骤,此时边界空节点的旧链表一侧还有最后一个具有有效数据的节点,即存储最大数据的节点。现在只需要将此节点与边界节点一起转移到整个链表的最后再删除边界节点,就能最终完成链表的排序。

        min = head->next;
    	xunow = min->next;
    	head->next = xunow->next;
    	xunow->next->ahead = head;
    	xunow->next = NULL;
    	min->ahead = uend;
    	uend->next = min;
    	uend = xunow;
    	end = uend->ahead;
    	uend->ahead->next = NULL;
    	free(uend);
    	return 0;
    }
    

    这就是自己在本学期的课程设计中,灵光一现敲出的链表节点排序代码。虽然不够简洁但不管怎么样这段代码还是实现了功能,即节点排序。

    展开全文
  • 做LeetCode时遇到的一个小问题,总结一下。 链表定义为如下 public class ListNode {  int val;...要求用插入排序对进行排序,并返回第一个节点。 解决方案的代码如下: public class Solution {
  • 给定一有向图,若图无环,则将其进行拓扑排序并输出,否则输出IMPOSABLE。 Input 第一行为两整数n(1 之后m行,行两整数a、b表示一条从a到b的有向边。 Output 若存在环,输出IMPOSABLE...
  • 用xgboost模型特征重要性进行排序

    万次阅读 多人点赞 2018-08-12 21:08:21
    用xgboost模型特征重要性进行排序 在这篇文章中,你将会学习到: xgboost预测模型特征重要性排序的原理(即为什么xgboost可以预测模型特征重要性进行排序)。 如何绘制xgboost模型得到的特征重要性条形图。...
  • 大数据算法:5亿数据进行排序

    万次阅读 多人点赞 2015-10-19 23:32:03
    比如说数据排序,比如说数据统计,比如说数据计算。而在大量的数据面前,我们总是束手无策,因为我们无法在限定时间的情况下,在效率上做到让人满意,也无法在限定空间的情况下,能够快速解决问题。可能我们在...
  • 二叉排序节点删除(c++)

    千次阅读 2015-06-16 15:59:00
    一、二叉排序树是每个节点最多含有两个节点的树,或者是一棵空树。 二、二叉排序树中左子节点小于父节点,右子节点大于父节点。 对于如何删除二叉排序树中的节点,主要需要考虑三种情况: 一、要删除的节点是叶子...
  • ANSYS使用APDL数组实现节点坐标大小排序,并返回其对应的节点编号 注:节点组件node_cm中的所有节点都在一条直线上,即所有节点坐标的三个分量有两个是相同的...选择一个节点组件 *get,firstnodenum,node,0,num,...
  • 这种表示法将二叉树中所有结点依其后序列表排列,并在每个结点中附加一个0到3之间的整数,以表示结点的状态。该整数为0时,表示相应的结点为一叶结点;为1时,表示相应结点只有一个左儿子;为2时,表示相应结点只有...
  • 二叉排序树(BST,Binary Sort Tree)具有这样的性质:对于二叉树中的任意节点,如果它有左子树或右子树,则该节点的数据成员大于左子树所有节点的数据成员,且小于右子树所有节点的数据成员。排序二叉树的中序遍历...
  • 算法学习总结(2)——温故十大经典排序算法

    万次阅读 多人点赞 2019-08-29 14:57:51
    一序列对象根据某个关键字进行排序。 1.2、排序术语 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在...
  • 通过索引找到每一行所对应列的数据,之后该列的所有数据进行排序(本实例只进行降序排列),排序结果的每个数据的索引就是该数据所对应行的位置。 【问题解决】 1、如何知道那一列需要排...
  • 在前台利用jquerydom元素进行排序

    千次阅读 2016-05-23 09:53:32
    一直以来,都不知道可以在前端dom元素进行排序,一次在博客园阅读别人的博客的时候,突然发现可以在前端利用jquery的sort...每个tr的第三列显示的都是数字,我们就以这数字列作为排序依据,方法就是利用jquery的sor
  • 求树中两个节点的最低公共祖先节点 这个题可能有几种不同的条件,那这样就是不同的问题 (1) 树是二叉树,且是二叉搜索树。 思路:如果是二叉搜索树,二叉搜索树是排序过的,位于左子树的节点都比父节点小,位于右子...
  • 十大排序算法

    万次阅读 多人点赞 2021-08-20 13:37:46
    对每一对相邻元素作同样的工作,从开始第一到尾部的最后一对,这样在最后的元素应该会是最大(小)的数 重复步骤1~2,重复次数等于数组的长度,直到排序完成 代码实现 下面数组实现排序:{24, 7, 43, 78, 62, 98...
  • 八大排序算法

    万次阅读 多人点赞 2012-07-23 16:45:18
    排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则...
  • 工作流中实现一个节点个节点的顺序审批
  • 1、root未知,但是每个节点都有parent指针 此时可以分别从两个节点开始,沿着parent指针走向根节点,得到两个链表,然后求两个链表的第一个公共节点。 2、节点只有左、右指针,没有parent指针,root已知 思路:有两...
  • //将链表分成两部分,对每一部分进行排序,然后在合并两部分即可 //1、找中间节点 while (fast && fast -> next){ fast = fast -> next -> next; slow = slow -> next; } //2、将链表分成两部分 fast =...
  • 排序

    万次阅读 多人点赞 2019-06-20 17:29:27
    大顶堆:每个节点的值都大于或者等于它的左右子节点的值。 小顶堆:每个节点的值都小于或者等于它的左右子节点的值。 如上所示,就是两种堆。 如果我们把这种逻辑结构映射到数组中,就是下边这样 9 5 8 ...
  • JS 利用appendChild标签进行排序

    千次阅读 2016-03-18 16:43:57
    按照从大到小排序appendChild: 假设父级a中已经有子节点b,那么a.appendChild(b)的作用是:1.先将子节点b从父级a中删除;2.再将子节点b添加到a中,放在最末尾。 提交 <ul id="ul1"> <li>32 <li>243</li>
  • 文章目录一、总览二、常用排序算法1、冒泡排序——交换类排序1.1 简介1.2 源码1.3 效果2、快速排序——交换类排序2.1 简介2.2 源码2.3 效果3、选择排序——选择类排序3.1 简介3.2 源码3.3 效果4、堆排序——选择类...
  • 与这题相似的有一道题,保留原始链表中重复数字出现一次 ...给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。 示例1: 输入: 1->2->3->3-&g...
  • 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1-&gt;1-&gt;2 输出: 1-&gt;2 示例 2: 输入: 1-&gt;1-&gt;2-&gt;3-&gt;3 输出: 1-&gt;2-...
  • python排序

    万次阅读 2018-02-08 00:13:50
    走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。 data_set = [ 9,1,22,31,45,3,6,2,11 ]
  • 从键盘接受输入,每个节点所含数据元素均为单字符,要完成: 建立一棵二叉链表表示方式存储的二叉排序树,并打印输出其由大到小遍历结果。 测试数据:输入EFHJBCAGID,符号“@”表示结束字符。 分析 根据二叉排序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 329,766
精华内容 131,906
关键字:

对每个节点进行排序