(一)順序表和單鏈表的初始化 插入 刪除等操作

2021-08-08 10:44:15 字數 3044 閱讀 3389

定義

#define  maxsize 20   //線性表最長長度

typedef int elemtype; //資料型別

typedef structsqlist;

函式說明

/**

* 順序表

* initlist(*l) 初始化

* listempty(l) 若為空,返回true

* clearlist(*l) 清空

* getelem(l,i,*e) 第i個位置元素返回給e

* locateelem(l,e) 查詢與e相同的元素,返回元素在表中序號

* listinsert(*l,i,e) 第i個元素之前插入元素

* listdelete(*l,i,*e) 刪除l的第i個資料

* * @return

*/

函式部分

int i;

status initlist(sqlist *l)

return ok;

}status output(sqlist *l)

printf("l->length:%d\n",l->length);

return ok;

}status getelem(sqlist l,int i,elemtype *e)

status locateelem(sqlist l,elemtype e)

}return false;

}status listinsert(sqlist *l,int i,elemtype e)

l->data[i-1] = e;

l->length++;

return ok;

}status listdelete(sqlist *l,int i,elemtype *e)

l->length--;

return ok;

}

main函式

int main() else

//刪除l的第i個資料

printf("請輸入要刪除第幾個資料:");

scanf("%d",&i);

listdelete(&l,i,&e);

printf("刪除後的線性表:");

output(&l);

//第i個元素之前插入元素

printf("請輸入i的值:");

scanf("%d",&i);

printf("請輸入要插入輸的值");

scanf("%d",&e);

listinsert(&l,i,e);

printf("插入後的線性表:");

output(&l);

return 0;

}

定義

typedef int  elemtype;

typedef struct nodenode;

typedef struct node *linklist;

函式說明

/**

* 單鏈表

* initlinklist(l) 初始化l

* outputlinklist(l) 輸出l

* linkedlistcreateh 頭插法

* linkedlistcreatet 尾插法

* length(l) 長度

* getelem(l,i,*e) 獲取第i個元素值

* listinsert(l,i,e) 在i個節點之前插入新的數

* listdelete(l,i,*e) 刪除第i個節點

* clearlist(l)

* @return

*/

函式部分

linklist initlinklist()

//頭插法

linklist linkedlistcreateh(linklist l)

return l;

}//尾插法

linklist linkedlistcreatet(linklist l)

elemtype x;

for (int i = 0; i < 5; i++)

r->next = null;

return l;

}status outputlinklist(linklist l)

return ok;

}status length(linklist l)

return length;

}status getelem(linklist l,int i,elemtype *e)

if(!p || j>i)

return error;

*e = p->data;

return ok;

}linklist listinsert(linklist l,int i,elemtype e)

if(!p || j>i)

return error;

s = (linklist)malloc(sizeof(node));

s->data = e;

s->next = p->next;

p->next = s;

return l;

}linklist listdelete(linklist l,int i,elemtype *e)

if(!(p->next)||j >i)

return error;

q = p->next;

p->next = q->next;

*e = q->data;

free(q);

return l;

}linklist clearlist(linklist l)

l->next = null;

}status isclear(linklist l)

main函式

int main()

順序表的初始化 刪除 插入

初始化線性表 include include include define list init size 100 define listincrement 10 define ok 1 define error 0 define overflow 2 struct sqlist char elem ...

順序表的初始化 插入 刪除

昨天晚上做了中移動蘇州軟體公司的暑期實習崗的筆試題,感覺備受打擊,尤其是自以為是的資料結構題 從快排 歸併排序 堆排序中選一種實現 碎決定再次學習資料結構一次,並將重要的資料結構用程式實現。這裡先實現的是順序表的初始化,插入和刪除操作。include using namespace std 線性表的...

單鏈表的初始化

方法一 include using namespace std struct listnode class solution cout head val return positiveoutput head next 該函式的作用是倒序輸出結點值 listnode reverseoutput lis...