programming
Download
Skip this Video
Download Presentation
Programming

Loading in 2 Seconds...

play fullscreen
1 / 15

Programming - PowerPoint PPT Presentation


  • 60 Views
  • Uploaded on

Programming. Summary. Exercise – Remove Duplicates. Download remove_duplicates_ex.c and implement the function void remove_duplicates(Node *head); remove_duplicates() accepts a list sorted in ascending order and deletes duplicate nodes from the list, leaving a single node for every value.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programming' - cheryl


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
exercise remove duplicates
Exercise – Remove Duplicates
  • Download remove_duplicates_ex.c and implement the functionvoid remove_duplicates(Node *head);
  • remove_duplicates() accepts a list sorted in ascending order and deletes duplicate nodes from the list, leaving a single node for every value.
  • Ideally, the list should only be traversed once.
clues in the question
Clues in the Question
  • remove_duplicates does not return a value – what does it mean?
  • Why do we care that the list is sorted? Does the sorting order makes a difference?
solution
Solution

void remove_duplicates(Node* head)

{

Node *current = head,

*tmp = NULL;

/* do nothing if the list is empty */

if (current == NULL)

return;

/* Compare current node with next node */

while (current->next != NULL)

{

if (current->data == current->next->data)

{

tmp = current->next;

current->next = current->next->next;

free(tmp);

} else {

/* only advance if no deletion */

current = current->next;

}

}

}

sample theoretical question
Sample Theoretical Question
  • What’s printed on the screen when the following program is run?
    • change_val.c
  • And what do these function do? What’s missing and how will you fix it?
    • secret1.c
    • secret2.c
parentheses checking
Parentheses Checking
  • Implement a function such that –
    • Input: string s that contains (among other things) parentheses
    • Output: 0 if the parentheses’ nesting is illegal, non-zero otherwise
    • For example – (()())() is legal, while ())() and (()(()) are not.
  • Write a program that accepts a string from the user and checks the parentheses.
palindrome
Palindrome
  • A palindrome is string that reads the same backward or forward.
  • For example: amanaplanacanalpanama (A man, a plan, a canal, Panama!(
  • Write a recursive function that checks if a string is a palindrome.
  • Write a program that reads a string from the user and checks if it’s a palindrome.
max distance
Max Distance
  • Write a structure of a point in 2D space and a distance function between two points
  • Write a program that gets a series of points from the user and outputs the largest distance between a pair of points
  • The number of points is given by the user before the points are read in
  • The distance between points [x1, y1] and [x2, y2] is
  • Solution – max_distance.c
max distance1
Max Distance
  • Write a structure of a point in 2D space and a distance function between two points
  • Write a program that gets a series of points from the user and outputs the largest distance between a pair of points and the points themselves
  • The number of points is given by the user before the points are read in
  • Solution – max_distance2.c, max_distance3.c
is in circle
Is In Circle?
  • Define two structures – a point and a circle
  • Implement a function is_in_circle that accepts a point and a circle, and returns 1 if the point is in the circle, 0 otherwise
  • Write a program that accepts n circles from the user and one point, and outputs the number of circles containing that point
    • n is user input!
split list
Split List
  • Implement a linked list where each item simply contains an integer
  • Input a number n from the user, and split the original list into two lists such that the first contains all the elements smaller than n, and the other contains all the others
  • Display both linked lists on the screen
functions to remember
Functions To Remember
  • stdio.h
    • printf, scanf, putchar, getchar
  • string.h
    • strlen, strcpy, strcat, strcmp, strchr, strstr
  • ctype.h
    • tolower, toupper, islower, isupper, …
  • stdlib.h
    • atof, atoi, malloc, free, exit
solving a problem
Solving A Problem
  • Read the entire question, beginning to end, then read it again.
  • Make sure you understand the requirements.
  • Break down the problem into logical steps
    • how do I get the input?
    • what kind of processing is needed?
    • what about the output?
  • Write your solution in a clear and concise manner (make sure you cover all your bases)
  • “compile and run”
the no 1 rule
The No. 1 Rule
  • Your grader is human, treat him as such!
ad