通过自定义排序/删除链接列表中的重复项来跳过最后一项

时间:2018-06-12 10:02:40

标签: c linked-list

我正在尝试在c中编写代码以删除单链表中的重复项。我这样做是先通过动态分配插入数字,然后对列表进行排序,最后删除重复数据。

代码适用于所有情况,除非最后一个数字本身是重复的,否则最后一个数字不会被排序,因此不会被删除。

以下是我的代码,在它显示的输出下方。

    foodDetail.putExtra("FoodId", adapter.getItem(position).getFoodId());

   foodDetail.putExtra("CategoryID", adapter.getItem(position).getMenuId());

输出:

 private void setupSlider() {
    mslider = findViewById(R.id.slider);
    HashMap<String,String>image_list = new HashMap<>();
    final DatabaseReference ref_banner = db.getReference("Banner");

    ref_banner.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot postSnapShot : dataSnapshot.getChildren()) {
                Banner banner = postSnapShot.getValue(Banner.class);
                //gonna concat string name and id like
                //PİZZA_01 => and gonna use PİZZA show description , 01 for food id to click
                image_list.put(banner.getName() + "@@@" + banner.getFoodId(), banner.getImage());
            }
            for (String key : image_list.keySet()) {
                String[] keySplit = key.split("@@@");
                String nameOfFood = keySplit[0];
                String idOfFood = keySplit[1];

                //Create Slider
                final TextSliderView textSliderView = new TextSliderView(getBaseContext());
                textSliderView.description(nameOfFood)
                        .image(image_list.get(key))
                        .setScaleType(BaseSliderView.ScaleType.Fit)
                        .setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
                            @Override
                            public void onSliderClick(BaseSliderView slider) {
                                Intent intent = new Intent(Home.this, FoodDetail.class);
                                intent.putExtras(textSliderView.getBundle());
                                startActivity(intent);
                            }
                        });
                //add extra bundle
                textSliderView.bundle(new Bundle());
                textSliderView.getBundle().putString( "FoodId", idOfFood);
                Picasso picasso = Picasso.get();
                textSliderView.setPicasso(picasso);
                mslider.addSlider(textSliderView);

                //remove event after finish
                ref_banner.removeEventListener(this);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

    mslider.setPresetTransformer(SliderLayout.Transformer.Background2Foreground);
    mslider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
    mslider.setCustomAnimation(new DescriptionAnimation());
    mslider.setDuration(3000);

}

1 个答案:

答案 0 :(得分:0)

改变这个:

cur->rear!=NULL

到此:

cur!=NULL

并为nextnxt执行相同操作。

PS:你应该真正了解使用功能。例如,检查此listmanagement.c,了解构建列表时如何使用函数。