C# tutorial-delete item of circularly linked list

Delete item of circularly linked list



Step 4: Delete an element of the circularly linked list

To delete an element of the circularly linked list, you need to consider the followings:

1. If the element to be deleted is the first element of the list and the list contains only one element, you only need to assign null to the pfirst and plast links. If the element to be deleted is the first element of the list and the list contain more than one element, you need a temporary link to point to the pfirst then move the pfirst to point to its next element and set the temporary link to null.

C# Delete the first item of the list  

2. If the element to be deleted is in the middle of the list, you need a traversing link(temp) to point to the element before the element to be deleted and a temporary link(del) to point to the element to be deleted. Then let the next link of the traversing link to point to the next link of the temporary link. To handle situation where the element to be deleted is the last element of the list, you need to test whether the target item is equal to the plast. If it is really equal, you need to update the plast to point to the traversing link. Finally set the temporary link to null.

C# Delete middle item of the list  

//C# code to  delete an item of the circularly linked list

public void delete(int pos)

            {

                int deleted = 1;

                if (pfirst != null)

                { //make sure the list is not empty.

                    ListNode<T> tr, temp;

 

                    if (pos == 1)

                    {//delete the first item

                        if (countitem() == 1)

                        { //The list contains only one item

                            pfirst = null;

                            plast = null;

 

                        }

                        else

                        { //The list contains more than one item

                            tr = pfirst;

                            pfirst = pfirst.next;

                            tr = null;

                        }

                        Console.WriteLine("Deleted");

 

                    }

 

                    else if (pos > 1 && pos <= countitem())

                    {//delete middle item

                        tr = pfirst;

                        int i;

                        for (i = 1; i < pos - 1; i = i + 1) { tr = tr.next; } //move to the item staying before the target item to be deleted

                        temp = tr.next; //target item to be deleted

                        tr.next = temp.next;

                        if (temp.next == null) plast = tr; //delete last item

                        temp = null;

                        Console.WriteLine("Deleted");

 

                    }

 

                    else { deleted = 0; Console.WriteLine("Invalid position!"); }

                    if (deleted != 0 && plast != null) plast.next = pfirst; //keep the list circularly linked

 

                }

 

                else Console.WriteLine("No item found");

 

            }




  • Why and How to learn
  • C programming language?
  • C++ programming language?
  • C# programming language?
  • Java programming language?
  • Python programming language?
  • VB programming language?
comment

Posted comments

Phan Neth, CICI, year 3:

Now it is ok teacher. I can connect to database and select data from it. Than you so much teacher !!!!!

04-30-2013

Dara:

Copy and paste the link below to the address box to learn how to connect C and Mysql server:
http://www.worldbestlearningcenter.com/index_files/cpp-tutorial-connect_mysql_database.htm

04-27-2013

Phan Neth, CICI, year 3:

Hello teacher i want to connect C programming language to MySql server but it have problem. When i compile it always error with library " my_global.h
and mysql.h", so how should i do?

04-27-2013

Phan Neth, Year 3 at CICI,:

I have some problem about connection to mysql server. So I hope teacher can help me. Thank !!!!

04-26-2013

Federico:

Output appears the same also this way:

static void Main(string[] args)
{
int[,] myArray = new int[5, 5];
int row, i;
int n = 1;

for (row = 0; row < 5; row++)
{
for (i = 0; i < 5; i++)
{
myArray[row, i] = n;
if (row == 1 && i == 2) Console.Write(" \t");
else Console.Write("{0} \t", n);

if (n!=26) n++;
if((i+1)%5==0) Console.WriteLine("\n");
}
}
Console.ReadLine();
}

04-13-2013

Dara:

Let pointer p point to the index 1 elem (value=2) of the array.
int *p= a+1;
Let pointer q point to the index 6 elem (value=5) of the array.
int *q= a+6;
-Expression q-p is the subtraction of address of the index 6 element and the address of index 1 elem of the array. So, the result is 5.
-Expression *p+*q is the sum of the value of index 1 elem (2) and the value of index 6 elem (5). So, the result is 7.
In conclusion, the output is 57.

03-28-2013

Anushka :

Find the output of following code
main()
{
int a[] = {1,2,9,8,6,3,5,7,8,9};
int *p= a+1; int *q= a+6;
cout<< q-p <<*p+*q; }

03-28-2013

Dara:

Option Explicit
Dim Cn as New ADODB.Connection
Private Sub_Form_Load()
Cn.Open "Provider=SQLOLEDB; Data Source=ServerName; Initial Catalog=DatabaseName;UserID=UserName; Password=Passw"
End Sub
You will need to replace ServerName with the name of your server (installed SQL Server), DatabaseName withe the name of your data file that you want to connect to, UserName with the name of the user to login to SQL Server, and Passw with the password used to login to SQL Server.

03-13-2013

More>>>

....................................................................................................................Home | Forum | About | Contact
This website intents to provide free and high quality tutorials, examples, exercises and solutions, questions and answers of programming and scripting languages:
C, C++, C#, Java, VB.NET, Python, VBA,PHP & Mysql, SQL, JSP, ASP.NET,HTML, CSS, JQuery, JavaScript and other applications such as MS Excel, MS Access, and MS Word. However, we don't guarantee all things of the web are accurate. If you find any error, please report it then we will take actions to correct it as soon as possible.
Copyright @ 2011-2013 worldbestlearningcenter. All Rights Reserved.
Computer-Wbest
Programming Tips
Download
Related Posts