Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- struct node {
- int data;
- struct node *next;
- };
- typedef struct node Node;
- void display(Node *start) {
- Node *temp;
- temp = start;
- while(temp != NULL) {
- cout << temp->data << " ";
- temp = temp->next;
- }
- }
- void odd(Node *start) {
- Node *temp;
- temp = start;
- printf("\nOdd Numbers: ");
- while(temp != NULL) {
- int flag = temp->data;
- if((flag % 2) != 0) {
- printf("%d ", flag);
- }
- temp = temp->next;
- }
- printf("\n");
- }
- void even(Node *start) {
- Node *temp;
- temp = start;
- printf("\nEven Numbers: ");
- while(temp != NULL) {
- int flag = temp->data;
- if((flag % 2) == 0) {
- printf("%d ", flag);
- }
- temp = temp->next;
- }
- printf("\n");
- }
- void max(Node *start) {
- Node *temp;
- temp = start;
- printf("\nMaximum Number is: ");
- int max = -1;
- while(temp != NULL) {
- int flag = temp->data;
- if(max < flag) {
- max = flag;
- }
- temp = temp->next;
- }
- printf("%d", max);
- }
- void min(Node *start) {
- Node *temp;
- temp = start;
- printf("\nMinimum Number is: ");
- int min = INT_MAX / 2;
- while(temp != NULL) {
- int flag = temp->data;
- if(min > flag) {
- min = flag;
- }
- temp = temp->next;
- }
- printf("%d", min);
- }
- void linearSearch(Node *start, int choice) {
- Node *temp;
- temp = start;
- int flag = 0;
- while(temp != NULL) {
- if(temp->data == choice) {
- flag = 1;
- }
- temp = temp->next;
- }
- if(flag == 1) {
- cout << "Found!!" << endl;
- } else {
- cout << "Not Found!!" << endl;
- }
- }
- void length(Node *start) {
- Node *temp;
- temp = start;
- int length = 0;
- while(temp != NULL) {
- length++;
- temp = temp->next;
- }
- printf("\nLength is: %d", length);
- }
- void sum(Node *start) {
- Node *temp;
- temp = start;
- int sum = 0;
- while(temp != NULL) {
- int flag = temp->data;
- sum += flag;
- temp = temp->next;
- }
- printf("\nSum is: %d", sum);
- }
- Node *deleteNumber(Node *start, int number) {
- Node *temp, *flag;
- temp = start;
- flag = new Node();
- while(temp != NULL) {
- int a = temp->data;
- if(a == number) {
- flag = temp;
- break;
- }
- temp = temp->next;
- }
- temp = start;
- if(temp->data == number) {
- start = start->next;
- } else {
- while (temp->next->data != number) {
- temp = temp->next;
- }
- temp->next = flag->next;
- //start = temp;
- }
- return start;
- }
- int main() {
- Node *start, *temp, *last;
- start = NULL;
- int ans;
- int choice, number;
- cout << "Do you want to add item?\n";
- cin >> ans;
- while(ans == 1) {
- if(start == NULL) {
- start = new node();
- printf("Enter data\n");
- scanf("%d", &start->data);
- start->next = NULL;
- last = start;
- } else {
- temp = new Node();
- printf("Enter data: ");
- scanf("%d", &temp->data);
- temp->next = NULL;
- last->next = temp;
- last = temp;
- }
- cout << "Do you want to add item?\n";
- cin >> ans;
- }
- display(start);
- odd(start);
- even(start);
- max(start);
- min(start);
- printf("\nPlease Enter the number you want to search\n");
- scanf("%d", &choice);
- linearSearch(start, choice);
- length(start);
- sum(start);
- display(start);
- printf("\nPlease Enter a number for delete the node: \n");
- scanf("%d", &number);
- start = deleteNumber(start, number);
- display(start);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement