File: list.c

package info (click to toggle)
swig 1.1p5-1
  • links: PTS
  • area: main
  • in suites: hamm
  • size: 9,448 kB
  • ctags: 5,025
  • sloc: cpp: 21,599; ansic: 13,333; yacc: 3,297; python: 2,794; makefile: 2,197; perl: 1,984; tcl: 1,583; sh: 736; lisp: 201; objc: 143
file content (58 lines) | stat: -rw-r--r-- 927 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include "list.h"
#include <string.h>

List::List() {
	head = new node();
	z = new node();
	head->next = z;
	z->next = z;
    };
List::~List() {
	node *n,*n1;
	n = head->next;
	while (n != z) {
	    n1 = n->next;
	    delete n;
	    n = n1;
	}
	delete head;
	delete z;
    }
void List::insert(char *value) {
	node *n;
	n = new node();
	n->value = new char[strlen(value)+1];
	strcpy(n->value,value);
	n->next = head->next;
	head->next = n;
    }
int List::search(char *value) {
	node *n;
	n = head->next;
	while (n != z) {
	    if (strcmp(value,n->value) == 0) return 1;
	    n = n->next;
	}
	return 0;
    }
char *List::get(int i) {
	node *n;
	int j;
	n = head->next;
	for (j = 0; j < i; j++) {
	    if (n == z) return "";
	    n = n->next;
	}
	return n->value;
    }
void List::output() {
	node *n;
	n = head->next;
	while (n != z) {
	    printf("%s ", n->value);
	    n = n->next;
	}
	printf("\n");
    }