Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #define maxlength 1000
- typedef int elementtype;
- typedef struct list_tag{
- elementtype elements[maxlength];
- int last;
- }list_type;
- list_type ds;
- void create(list_type *lp){
- lp->last = -1;
- }
- int end(list_type *lp){
- return (lp->last+1);
- }
- void insert(elementtype x, int p, list_type *lp){
- int i;
- if(lp->last >= maxlength-1){
- printf("List is full!");
- return;
- }
- if ((p<0) || (p>lp->last+1)) {
- printf("Position doesnot exist!");
- return;
- }
- for (i=lp->last; i>= p; i--){
- lp->elements[i+1] = lp->elements[i];
- }
- lp->elements[p] = x;
- lp->last++;
- }
- void del(int p, list_type *lp){
- int i;
- if ((p<0) || (p>lp->last)) {
- printf("Position does not exist!\n");
- }
- lp->last--;
- for (i=p; i <= lp->last; i++){
- lp->elements[i+1] = lp->elements[i];
- }
- }
- int locate(elementtype x, list_type *lp){
- int i;
- for (i = 0; i <= lp->last; i++){
- if (lp->elements[i] == x){
- return i;
- } else return -1;
- }
- }
- int retrieve(int p, list_type *lp){
- if (p<0 || p>lp->last){
- printf("Position does not exist!! \n");
- return;
- }
- return lp->elements[p];
- }
- int next(int p, list_type *lp){
- if (p<0 || p>lp->last-1){
- printf("Position does not exist!! \n");
- return;
- }
- return lp->elements[p+1];
- }
- int prev(int p, list_type *lp){
- if (p<1 || p>lp->last){
- printf("Position does not exist!! \n");
- return;
- }
- return lp->elements[p-1];
- }
- void printds(list_type *lp){
- int i;
- printf("Danh sach %d phan tu: \n", lp->last+1);
- for (i = 0; i <= lp->last; i++){
- printf("%d", lp->elements[i]);
- printf(" ");
- }
- printf("\n\n");
- }
- void main(){
- create(&ds);
- insert(12,0,&ds);
- printds(&ds);
- insert(6,0,&ds);
- insert(16,0,&ds);
- insert(9,0,&ds);
- insert(7,2,&ds);
- insert(23,3,&ds);
- insert(3,1,&ds);
- insert(40,3,&ds);
- printds(&ds);
- int a = retrieve(4, &ds);
- printf("%d", a);
- }
Advertisement
Add Comment
Please, Sign In to add comment