(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Lecture 19 - 3/27 - John Ribeiro - Lu
+
[[Category:ECE264]] [[Category:Programming]] [[Category:C]] [[Category:lecture notes]]
 +
 
 +
=Lecture 20, [[ECE264]], Spring 2012, Prof. Lu=
 +
----
 +
Lecture 20 - 3/27 - John Ribeiro - Lu
  
 
typedef struct listnode
 
typedef struct listnode
Line 243: Line 247:
 
   return p;
 
   return p;
 
}
 
}
 +
/***********************************************************************
 +
 +
ECE264 LEC19 Hanye Xu April 1
 +
 +
typedef struct listnode
 +
{
 +
    struct listnode *next;
 +
    int value;
 +
}Node;
 +
 +
Node *Node_construct(int v)
 +
{
 +
  Node *n;
 +
  n=malloc(sizeof(Node));
 +
  n->next=NULL;
 +
  n->value = v;
 +
  return n;
 +
}
 +
 +
Node *List_insert(Node*h,int u)
 +
{
 +
  Node *n = Node_construct(u);
 +
  n->next=h;
 +
  return n;
 +
}
 +
 +
Void  List_Print(Node*head)
 +
{
 +
  Node*p = head;
 +
  while(p!=NULL)
 +
  {
 +
    printf("%d\n",p->value);
 +
    p=p->next;
 +
  }
 +
}
 +
 +
Void List_destroy(Node *head)
 +
{
 +
  Node *p;
 +
  Node *q;
 +
  p=head;
 +
  while(p!=NULL)
 +
  {
 +
    q=p->next;
 +
    free(p);
 +
    p=q;
 +
  }
 +
}
 +
 +
 +
main
 +
 +
Node * head=BULL;
 +
 +
head = List_insect(head,6);
 +
 +
head = List_insect(head,29);
 +
 +
head = List_insect(head,-74);
 +
 +
List_print(head);
 +
 +
List_destroy(head);
 +
 +
 +
Node*head = NULL;
 +
do
 +
{
 +
  scanf("%d",&value);
 +
  if(value!=0)
 +
  {
 +
    head = List_insect(head,value);
 +
  }while(value!=p);
 +
 +
 +
Node *List_search(Node *p, int v)
 +
{
 +
  while(p!=NULL)
 +
  {
 +
    if((p->value)==v)
 +
    {
 +
      return p;
 +
    }
 +
    p=p->next;
 +
  }
 +
  return p;
 +
}
 +
 +
 +
/***********************************************************************
 +
 +
ECE264 HUAYI GUO  professor Niklas Elmqvist
 +
//Lecture0321
 +
/*
 +
ipa2 Generate "super" Blokus Pieces
 +
 +
to take any number of blocks to generate any comfigarition of pieces
 +
Not allowed to illimulate rotations ,mirrors and tranlated versions.
 +
 +
stage one:
 +
Integer partitions
 +
Taking a number and split it into partitions.
 +
 +
 +
 +
 +
*/
 +
 +
void intpart(int badget, int pos, int *data)
 +
{
 +
  int i;
 +
 +
  //Base case;
 +
  if(badget == 0){
 +
      //print postions
 +
  return;
 +
  }
 +
  //recursive case:
 +
  for(i = 1; i <= badget; i++){
 +
      data[pos]==i;
 +
      intpart(badget - i, pos+1,data);
 +
  }
 +
  return;
 +
}
 +
 +
===============================
 +
Kevin Tan(0023987592), section#2  notes 03/27
 +
 +
 +
4 = [4]
 +
=[3 1] [1 3]
 +
=[2 1 1][1 1 2][1 2 1]
 +
=[1 1 1 1]
 +
 +
void intpart(int*array, int budget, int pos)
 +
{
 +
  if(budget == 0)
 +
  {
 +
    printpartition(array, pos-1);
 +
   
 +
  }
 +
  int spending = 0;
 +
  for (speding=1;spend<=budget;spending+1)
 +
  {
 +
    array[pos] = spending;
 +
    intpart(array,budget-spending,pos+1);
 +
  }
 +
}
 +
 +
int main(int argc, char*argv[])
 +
{
 +
  int n = strtol(argv[1],NULL,10);
 +
  int *array = malloc(n*sizeof(array));
 +
}
 +
----
 +
[[2012_Spring_ECE_264_Lu|Back to ECE264, Spring 2012, Prof. Lu]]

Latest revision as of 04:26, 11 July 2012


Lecture 20, ECE264, Spring 2012, Prof. Lu


Lecture 20 - 3/27 - John Ribeiro - Lu

typedef struct listnode {

 struct listnode *next; // don't forget *
 int value;

} Node;

Node * Node_construct ( int n ) {

 Node * n;
 n = malloc ( sizeof ( Node ) );
 n -> next = NULL; // Very common mistake to forget this
 n -> value = v;
 return n;

}

Node * List_insert ( Node * head, int v ) {

 Node * n = Node_construct ( v );
 n -> next = head; // Key to how the linked list works
 return n;

}

// The insertion is like a stack, first in, last out

void List_print ( Node * head ) {

 Node * p = head;
 while ( p != NULL )
 {
   printf ( " %d \n ", p -> value );
   p = p->next;
 }

}

void List_destroy ( Node * head ) {

 Node * p;
 Node * q;
 p = head;
 while ( p != NULL )
 {
   q = p ->next;
   free ( p );
   p = q;
 }

}

How to use this?

Node * head = NULL; // Must Initialize head = List_insert ( head, 6 ); head = List_insert ( head, 29); head = List_insert ( head, -74 ); List_print ( head ); List_destroy ( head ); head = NULL; // Must redefine head to point to NULL

Node * head = NULL;

while ( still data ) {

 head = List_insert ( head , data );

}

OR

do {

 scanf ( "%d", &value );
 if ( value != 0 )
 {
   head = List_insert ( head, value );
 }

} while ( value != 0 );

=> All of the data in the list.

Node * List_search ( Node *p, int v ) {

 while ( p != NULL )
 {
   if ( p -> value == v )
   {
      return p;
   }
   p = p -> next;
 }
 return p; /* OR NULL */

}



Lecture 20 3/27 _ Kailu Song

(Application of link list) typeof struct listnode { struct list node *next; int value; }Node;

Node *Node_construct (int u) { Node *n; n = malloc(sizeof(Node)); n -> next = NULL; n->value = u; return n; } Node *List_insert(Node *h, int v) { Node *n = Node_construct(v); n -> next = h; return n; }

void List_print(Node *h) { Node *p = h; while (p != NULL) { printf("%d\n", p->value); p=p->next; } }

void List_destroy (Node *h) { Node *p; Node *q;

	p = h;

while (p!= NULL) { q = p->next; free℗; p = q; } }

void main() { Node *head = NULL; head = List_insert(head,6); head = List_insert(head,29); head = List_insert(head,-74); List_printf(head); List_destroy(head); head = NULL; }





ECE264 LEC19 Shiyu Wang April 1

typedef struct listnode {

 struct listnode *next;
 int value;

}Node;

Node *Node_construct(int v) {

 Node *n;
 n=malloc(sizeof(Node));
 n->next=NULL;
 n->value = v;
 return n;

}

Node *List_insert(Node*h,int u) {

 Node *n = Node_construct(u);
 n->next=h;
 return n;

}

Void List_Print(Node*head) {

 Node*p = head;
 while(p!=NULL)
 {
   printf("%d\n",p->value);
   p=p->next;
 }

}

Void List_destroy(Node *head) {

 Node *p;
 Node *q;
 p=head;
 while(p!=NULL)
 {
   q=p->next;
   free(p);
   p=q;
 }

}


How to use

Node * head=BULL;

head = List_insect(head,6);

head = List_insect(head,29);

head = List_insect(head,-74);

List_print(head);

List_destroy(head);


Node*head = NULL; do {

 scanf("%d",&value);
 if(value!=0)
 {
   head = List_insect(head,value);
 }while(value!=p);


Node *List_search(Node *p, int v) {

 while(p!=NULL)
 {
   if((p->value)==v)
   {
     return p;
   }
   p=p->next;
 }
 return p;

} /***********************************************************************

ECE264 LEC19 Hanye Xu April 1

typedef struct listnode {

   struct listnode *next;
   int value;

}Node;

Node *Node_construct(int v) {

 Node *n;
 n=malloc(sizeof(Node));
 n->next=NULL;
 n->value = v;
 return n;

}

Node *List_insert(Node*h,int u) {

 Node *n = Node_construct(u);
 n->next=h;
 return n;

}

Void List_Print(Node*head) {

 Node*p = head;
 while(p!=NULL)
 {
   printf("%d\n",p->value);
   p=p->next;
 }

}

Void List_destroy(Node *head) {

 Node *p;
 Node *q;
 p=head;
 while(p!=NULL)
 {
   q=p->next;
   free(p);
   p=q;
 }

}


main

Node * head=BULL;

head = List_insect(head,6);

head = List_insect(head,29);

head = List_insect(head,-74);

List_print(head);

List_destroy(head);


Node*head = NULL; do {

 scanf("%d",&value);
 if(value!=0)
 {
   head = List_insect(head,value);
 }while(value!=p);


Node *List_search(Node *p, int v) {

 while(p!=NULL)
 {
   if((p->value)==v)
   {
     return p;
   }
   p=p->next;
 }
 return p;

}


/***********************************************************************

ECE264 HUAYI GUO professor Niklas Elmqvist //Lecture0321 /* ipa2 Generate "super" Blokus Pieces

to take any number of blocks to generate any comfigarition of pieces Not allowed to illimulate rotations ,mirrors and tranlated versions.

stage one: Integer partitions Taking a number and split it into partitions.



  • /

void intpart(int badget, int pos, int *data) {

  int i;

  //Base case;
  if(badget == 0){
     //print postions

return;

  }
  //recursive case:
  for(i = 1; i <= badget; i++){
     data[pos]==i;
     intpart(badget - i, pos+1,data);
  }
  return;

}

===================

Kevin Tan(0023987592), section#2 notes 03/27


4 = [4] =[3 1] [1 3] =[2 1 1][1 1 2][1 2 1] =[1 1 1 1]

void intpart(int*array, int budget, int pos) {

 if(budget == 0)
 {
   printpartition(array, pos-1);
   
 }
 int spending = 0;
 for (speding=1;spend<=budget;spending+1)
 {
   array[pos] = spending;
   intpart(array,budget-spending,pos+1);
 }

}

int main(int argc, char*argv[]) {

 int n = strtol(argv[1],NULL,10);
 int *array = malloc(n*sizeof(array));

}


Back to ECE264, Spring 2012, Prof. Lu

Alumni Liaison

Ph.D. 2007, working on developing cool imaging technologies for digital cameras, camera phones, and video surveillance cameras.

Buyue Zhang