(8 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:ECE264]] [[Category:Programming]] [[Category:C]] [[Category:lecture notes]] | ||
+ | |||
+ | =Lecture 21, [[ECE264]], Spring 2012, Prof. Lu= | ||
+ | ---- | ||
Lecture 21 - Professor Lu (taught by Professor Elmqvist) - John Ribeiro | Lecture 21 - Professor Lu (taught by Professor Elmqvist) - John Ribeiro | ||
Line 120: | Line 124: | ||
} | } | ||
+ | ======================================== | ||
+ | Wudi Zhou Prof. Lu's section | ||
+ | |||
+ | #include "ipa2.h" | ||
+ | |||
+ | Node *Node_construct(int v, Node *Next) | ||
+ | { | ||
+ | Node *n; | ||
+ | |||
+ | n = malloc(sizeof(Node)); | ||
+ | n->next = Next; | ||
+ | n->value = v; | ||
+ | |||
+ | return n; | ||
+ | } | ||
+ | |||
+ | Node *List_insertFront(Node *head,int v) | ||
+ | { | ||
+ | Node *n = Node_construct(v); | ||
+ | n->next = head; | ||
+ | return n; | ||
+ | } | ||
+ | |||
+ | Node *List_search(Node*head, int v) | ||
+ | { | ||
+ | while ((head != NULL)&&(head->value)!=v) { | ||
+ | head = head->next; | ||
+ | } | ||
+ | return head; | ||
+ | } | ||
+ | Node *List_insertEnd(Node *h, int v) | ||
+ | { | ||
+ | Node *n = Node_construct(v,NULL); | ||
+ | |||
+ | if (h == NULL) | ||
+ | { | ||
+ | return n; | ||
+ | } | ||
+ | if(v<h->value){ | ||
+ | n->next = h; | ||
+ | return n; | ||
+ | } | ||
+ | Node *curr = h; | ||
+ | while (curr->next != NULL && curr->next->value < v) | ||
+ | { | ||
+ | curr = curr->next; | ||
+ | } | ||
+ | n->next=curr->next; | ||
+ | curr->next = n; | ||
+ | return h; | ||
+ | } | ||
+ | |||
+ | Node *List_delete(Node *head, int del) | ||
+ | { | ||
+ | if(head == NULL) | ||
+ | { | ||
+ | return NULL; | ||
+ | } | ||
+ | Node *p=head; | ||
+ | |||
+ | if((head->value)== del) | ||
+ | { | ||
+ | p=head->next; | ||
+ | free(head); | ||
+ | return p; | ||
+ | } | ||
+ | Node *q=p->next; | ||
+ | while((q!=NULL)&&(q->value)!=del) | ||
+ | { | ||
+ | p=q; | ||
+ | q=q->next; | ||
+ | } | ||
+ | if(q!=NULL) | ||
+ | { | ||
+ | p->next=q->next; | ||
+ | free (q); | ||
+ | } | ||
+ | return head; | ||
+ | } | ||
Line 308: | Line 391: | ||
*/ | */ | ||
+ | =============================== | ||
+ | Kevin Tan(0023987592), section#2 notes 04/03 | ||
+ | |||
+ | |||
+ | #include "ipa2.h" | ||
+ | |||
+ | Node *Node_construct(int v, Node *Next) | ||
+ | { | ||
+ | Node *n; | ||
+ | |||
+ | n = malloc(sizeof(Node)); | ||
+ | n->next = Next; | ||
+ | n->value = v; | ||
+ | |||
+ | return n; | ||
+ | } | ||
+ | |||
+ | Node *List_insertFront(Node *head,int v) | ||
+ | { | ||
+ | Node *n = Node_construct(v); | ||
+ | n->next = head; | ||
+ | return n; | ||
+ | } | ||
+ | |||
+ | Node *List_search(Node*head, int v) | ||
+ | { | ||
+ | while ((head != NULL)&&(head->value)!=v) { | ||
+ | head = head->next; | ||
+ | } | ||
+ | return head; | ||
+ | } | ||
+ | Node *List_insertEnd(Node *h, int v) | ||
+ | { | ||
+ | Node *n = Node_construct(v,NULL); | ||
+ | |||
+ | if (h == NULL) | ||
+ | { | ||
+ | return n; | ||
+ | } | ||
+ | if(v<h->value){ | ||
+ | n->next = h; | ||
+ | return n; | ||
+ | } | ||
+ | Node *curr = h; | ||
+ | while (curr->next != NULL && curr->next->value < v) | ||
+ | { | ||
+ | curr = curr->next; | ||
+ | } | ||
+ | n->next=curr->next; | ||
+ | curr->next = n; | ||
+ | return h; | ||
+ | } | ||
+ | |||
+ | Node *List_delete(Node *head, int del) | ||
+ | { | ||
+ | if(head == NULL) | ||
+ | { | ||
+ | return NULL; | ||
+ | } | ||
+ | Node *p=head; | ||
+ | |||
+ | if((head->value)== del) | ||
+ | { | ||
+ | p=head->next; | ||
+ | free(head); | ||
+ | return p; | ||
+ | } | ||
+ | Node *q=p->next; | ||
+ | while((q!=NULL)&&(q->value)!=del) | ||
+ | { | ||
+ | p=q; | ||
+ | q=q->next; | ||
+ | } | ||
+ | if(q!=NULL) | ||
+ | { | ||
+ | p->next=q->next; | ||
+ | free (q); | ||
+ | } | ||
+ | return head; | ||
+ | } | ||
+ | ================================ | ||
+ | Hanye Xu April 03 | ||
+ | |||
+ | Node *List_elementAt(Node *head, int index); | ||
+ | |||
+ | Node *List_search(Node *head, int v) | ||
+ | { | ||
+ | while(head != NULL && head -> value != v) { | ||
+ | head = head -> next; | ||
+ | } | ||
+ | return head; | ||
+ | } | ||
+ | |||
+ | Node *List_insertBack(Node *head, int value) | ||
+ | { | ||
+ | Node *node = Node_create(value,NULL); | ||
+ | if (head == NULL){ | ||
+ | return node; | ||
+ | } | ||
+ | |||
+ | Node *curr = head; | ||
+ | while(curr ->next != NULL) { | ||
+ | curr= curr->next; | ||
+ | } | ||
+ | curr->next = node; | ||
+ | return head; | ||
+ | } | ||
+ | |||
+ | Node *List_insertFront(Node *head, int value) | ||
+ | { | ||
+ | return Node_create(value, head); | ||
+ | } | ||
+ | |||
+ | void List_print(Node *head); { | ||
+ | while (head != NULL) { | ||
+ | printf("%d", head->value); | ||
+ | head = head->next; } | ||
+ | } | ||
+ | |||
+ | void List_destroy(Node *head); { | ||
+ | while (head != NULL) { | ||
+ | Node *tmp = head; | ||
+ | head = head->next; | ||
+ | Node_destroy(tmp); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | int main(int argc, char *argv[]) { | ||
+ | int i; | ||
+ | Node *head = NULL; | ||
+ | for (i=0;i<10;i++) { | ||
+ | head = List_insertFront(head, i); | ||
+ | } | ||
+ | List_print(head); | ||
+ | printf("value = %d", List_search(head,8)->value); | ||
+ | List_destroy(head); | ||
+ | |||
+ | |||
+ | return EXIT_SUCCESS; } | ||
+ | ---- | ||
+ | [[2012_Spring_ECE_264_Lu|Back to ECE264, Spring 2012, Prof. Lu]] |
Latest revision as of 05:26, 11 July 2012
Contents
Lecture 21, ECE264, Spring 2012, Prof. Lu
Lecture 21 - Professor Lu (taught by Professor Elmqvist) - John Ribeiro
In order to think about recursion, think about the base case. Then move on to thinking about the recursive case
- Spending and Budgets helpful in understanding this concept
Linked Lists are resizable.
Node * List)insertFront ( Node * head, int value ) {
return Node_create(value, head);
}
void List_destroy ( Node * head ) {
while ( head != NULL ) { Node * temp = head; head = head->next; destroy ( temp ); }
}
Node * List_insertBack ( Node * head, int value ) {
Node * node = Node_create ( value, NULL ); if ( head == NULL ) { return node; } Node * curr = head; while ( curr->next != NULL ) { curr = curr -> next; } curr->next = node; return head;
}
Node * List_search ( Node * head, int v ) {
while ( head != NULL && head->value != v ) { head = head -> next; } return head;
}
Linked List does not support random access.
Lecture 21_3/29_Kailu Song void Node_destroy(Node *node) { free(node); }
Node *List_elementAt(Node *head, int index);
Node *List_search(Node *head, int v) { while(head != NULL && head -> value != v) { head = head -> next; } return head; }
Node *List_insertBack(Node *head, int value) { Node *node = Node_create(value,NULL); if (head == NULL){return node;} Node *curr = head; while(curr ->next != NULL) { curr= curr->next; } curr->next = node; return head; }
Node *List_insertFront(Node *head, int value) { return Node_create(value, head); }
void List_print(Node *head); { while (head != NULL) { printf("%d", head->value); head = head->next; } }
void List_destroy(Node *head); { while (head != NULL) { Node *tmp = head; head = head->next; Node_destroy(tmp); } }
int main(int argc, char *argv[]) { int i; Node *head = NULL; for (i=0;i<10;i++) { head = List_insertFront(head, i); } List_print(head); printf("value = %d", List_search(head,8)->value); List_destroy(head);
return EXIT_SUCCESS; }
============================
Wudi Zhou Prof. Lu's section
- include "ipa2.h"
Node *Node_construct(int v, Node *Next) {
Node *n;
n = malloc(sizeof(Node)); n->next = Next; n->value = v;
return n;
}
Node *List_insertFront(Node *head,int v) {
Node *n = Node_construct(v); n->next = head; return n;
}
Node *List_search(Node*head, int v) {
while ((head != NULL)&&(head->value)!=v) { head = head->next; } return head;
} Node *List_insertEnd(Node *h, int v) {
Node *n = Node_construct(v,NULL); if (h == NULL) { return n; } if(v<h->value){ n->next = h; return n; } Node *curr = h; while (curr->next != NULL && curr->next->value < v) { curr = curr->next; } n->next=curr->next; curr->next = n; return h;
}
Node *List_delete(Node *head, int del) {
if(head == NULL) { return NULL; } Node *p=head; if((head->value)== del) { p=head->next; free(head); return p; } Node *q=p->next; while((q!=NULL)&&(q->value)!=del) { p=q; q=q->next; } if(q!=NULL) { p->next=q->next; free (q); } return head;
}
ECE264 LEC20 Shiyu Wang April 1
4=[4]
=[3 1] =[1 3] =[2 1 1] =[1 2 1] =[1 1 2] =[1 1 1 1]
Void x(int *array, int budget, int pos) {
if(budget==0) { print return; } int spending; for(spending = 1; spending <= budget; spending++) { array[pos]=spending; x(array,budget,spending,pos+1); }
}
int main(int argc, char*argv[]) {
if( argc!=2) { return Exit_failure; } num = strtol......; . . .
}
int main {
int i; Node * head=BULL; for( i=0;i<6;i++) { head = List_insect(head,i); } List_print(head); List_destroy(head); return exit_success;
}
Node *Node_construct(int value ,Node* next) {
Node *node =malloc(sizeof(Node)); node->next=next; node->value = value; return node;
}
Node *List_insertfront(Node*head,int value) {
return Node_crest(value,head);
}
Void List_Print(Node*head) {
while(head!=NULL) { printf("%d\n",head->value); head=head->next; }
}
Void List_destroy(Node *head) {
while(head!=NULL) { Node *temp = head; head=head->next; Node_destroy(temp); } free;
}
Node* List_insertback(Node *head, int value) {
Node*node = Node_creat(value, NULL) if(head==NULL) { return node; } Node *arr =head; while(arr->next !=NULL) { arr = arr->next; } arr->next =node;
}
Node *List_search(Node *head, int v) {
while((head!=NULL) && (head->value != v)) { head=head->next; } return head;
}
/**************************************************
Huayi Guo Lecture 0330 by professor Niklas Elmqvist
/* lecture0330 ipa2-2
for the Unix and Window system the text files are different when there is a new line And that is important!!
- /
- include<math.h>
int main(int argc, char*argv[]) {
//check arguments //check input file to see if it is valid const int Data_size = 101; char buffer[Data_size], block[Data_size]; block[0] = '\0'; int muti_line =0; while (fgets(buffer, Date_size, f) != NULL){ if(buffer[strlen(buffer) - 1 ] == '\n')
buffer[strlen(buffer) - 1 ] ='\0'; if(strlen(buffer) ==0){ //found the end of the block if(){ printf("%s\n",blcok); } else{ int dim = sqrt(strlen(block)); int i,j; for(i =0;i < dim;i++) { for(j =0; j <dim; j++){ printf("%c".block[i*dim+j]); } printf("\n"); } } printf("\n"); block ='\0'; muti_line =0; }
else{
//found the data if(strlen(block) != 0) nuti_line = 1; strcpy(block+strlen(block),buffer); }
} fclose(f); return EXIT_SUCCESS;
}
/*
check if there's a \n at the end of the file
- /
===================
Kevin Tan(0023987592), section#2 notes 04/03
- include "ipa2.h"
Node *Node_construct(int v, Node *Next) {
Node *n;
n = malloc(sizeof(Node)); n->next = Next; n->value = v;
return n;
}
Node *List_insertFront(Node *head,int v) {
Node *n = Node_construct(v); n->next = head; return n;
}
Node *List_search(Node*head, int v) {
while ((head != NULL)&&(head->value)!=v) { head = head->next; } return head;
} Node *List_insertEnd(Node *h, int v) {
Node *n = Node_construct(v,NULL); if (h == NULL) { return n; } if(v<h->value){ n->next = h; return n; } Node *curr = h; while (curr->next != NULL && curr->next->value < v) { curr = curr->next; } n->next=curr->next; curr->next = n; return h;
}
Node *List_delete(Node *head, int del) {
if(head == NULL) { return NULL; } Node *p=head; if((head->value)== del) { p=head->next; free(head); return p; } Node *q=p->next; while((q!=NULL)&&(q->value)!=del) { p=q; q=q->next; } if(q!=NULL) { p->next=q->next; free (q); } return head;
}
====================
Hanye Xu April 03
Node *List_elementAt(Node *head, int index);
Node *List_search(Node *head, int v)
{
while(head != NULL && head -> value != v) { head = head -> next; } return head; }
Node *List_insertBack(Node *head, int value) { Node *node = Node_create(value,NULL);
if (head == NULL){
return node; }
Node *curr = head; while(curr ->next != NULL) { curr= curr->next;
}
curr->next = node;
return head; }
Node *List_insertFront(Node *head, int value) { return Node_create(value, head);
}
void List_print(Node *head); { while (head != NULL) {
printf("%d", head->value);
head = head->next; }
}
void List_destroy(Node *head); { while (head != NULL) { Node *tmp = head; head = head->next; Node_destroy(tmp); } }
int main(int argc, char *argv[]) { int i; Node *head = NULL; for (i=0;i<10;i++) { head = List_insertFront(head, i); } List_print(head); printf("value = %d", List_search(head,8)->value); List_destroy(head);
return EXIT_SUCCESS; }