Giter Club home page Giter Club logo

Comments (5)

richardeigenmann avatar richardeigenmann commented on July 22, 2024

Hi. I'm attending my first Hacktoberfest. I'll give this a try with C++. Let's see if I can make you a nice pull request!

from git_first.

neilchauhan2 avatar neilchauhan2 commented on July 22, 2024

@richardeigenmann that's awesome! Go for it!

from git_first.

amitmishram avatar amitmishram commented on July 22, 2024

#include <stdio.h>
#include <stdlib.h>

struct node {
int data;
struct node *next;
};

struct node *start = NULL;
void insert_at_begin(int);
void insert_at_end(int);
void traverse();
void delete_from_begin();
void delete_from_end();
int count = 0;

int main () {
int input, data;

for (;;) {
printf("1. Insert an element at beginning of linked list.\n");
printf("2. Insert an element at end of linked list.\n");
printf("3. Traverse linked list.\n");
printf("4. Delete element from beginning.\n");
printf("5. Delete element from end.\n");
printf("6. Exit\n");

  scanf("%d", &input);
 
  if (input == 1) {
     printf("Enter value of element\n");
     scanf("%d", &data);
     insert_at_begin(data);
  }
  else if (input == 2) {
     printf("Enter value of element\n");
     scanf("%d", &data);
     insert_at_end(data);
  }
  else if (input == 3)
     traverse();
  else if (input == 4)
     delete_from_begin();  
  else if (input == 5)
     delete_from_end();
  else if (input == 6)
     break;
  else
     printf("Please enter valid input.\n");      

}

return 0;
}

void insert_at_begin(int x) {
struct node *t;

t = (struct node*)malloc(sizeof(struct node));
count++;

if (start == NULL) {
start = t;
start->data = x;
start->next = NULL;
return;
}

t->data = x;
t->next = start;
start = t;
}

void insert_at_end(int x) {
struct node *t, *temp;

t = (struct node*)malloc(sizeof(struct node));
count++;

if (start == NULL) {
start = t;
start->data = x;
start->next = NULL;
return;
}

temp = start;

while (temp->next != NULL)
temp = temp->next;

temp->next = t;
t->data = x;
t->next = NULL;
}

void traverse() {
struct node *t;

t = start;

if (t == NULL) {
printf("Linked list is empty.\n");
return;
}

printf("There are %d elements in linked list.\n", count);

while (t->next != NULL) {
printf("%d\n", t->data);
t = t->next;
}
printf("%d\n", t->data);
}

void delete_from_begin() {
struct node *t;
int n;

if (start == NULL) {
printf("Linked list is already empty.\n");
return;
}

n = start->data;
t = start->next;
free(start);
start = t;
count--;

printf("%d deleted from beginning successfully.\n", n);
}

void delete_from_end() {
struct node *t, *u;
int n;

if (start == NULL) {
printf("Linked list is already empty.\n");
return;
}

count--;

if (start->next == NULL) {
n = start->data;
free(start);
start = NULL;
printf("%d deleted from end successfully.\n", n);
return;
}

t = start;

while (t->next != NULL) {
u = t;
t = t->next;
}

n = t->data;
u->next = NULL;
free(t);

printf("%d deleted from end successfully.\n", n);
}

from git_first.

Vatuu avatar Vatuu commented on July 22, 2024

I have also created a neat little linked implementation and explained how it works in great detail.

from git_first.

Rodio346 avatar Rodio346 commented on July 22, 2024

This is my first Hacktoberfest too. i was thinking of adding Doubly linked list too in this.

from git_first.

Related Issues (11)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.