Danh Sách Đặc Hãy viết hàm xóa phần tử ở vị trí p trong danh sách void deleteList(Position p, List L){ if(p > L>Last || pElementsi1 = L> Elementsi; } L>Last ; } } Hãy viết hàm nhập danh sách số nguyên từ bàn phím. void readList(List L){ int i,N; ElementType X; makenullList (L); scanf(%d,N); fflush (stdin); for (i = 1; iLast == Maxlength) printf(\nDanh sach day); else if ((PL>Last +1)) { printf(\nVi tri khong hop le); } else { for (i=L>Last ; i>=P;i) L>Elementsi = L>Elementsi1; L>Last ++; L>ElementsP1 = X; } } Hãy viết hàm tìm vị trí xuất hiện đầu tiên của phần tử x trong danh sách các số nguyên. Position locate (int X,List L) { for (int i=0;i L->Last || pElements[i-1] = L-> Elements[i]; } L->Last ; } } Hãy viết hàm nhập danh sách số nguyên từ bàn phím void readList(List *L){ int i,N; ElementType X; makenullList (L); scanf("%d",&N); fflush (stdin); for (i = 1; iLast == Maxlength) printf("\nDanh sach day"); else if ((PL->Last +1)) { printf("\nVi tri khong hop le"); } else { for (i=L->Last ; i>=P;i ) L->Elements[i] = L->Elements[i-1]; L->Last ++; L->Elements[P-1] = X; } } Hãy viết hàm tìm vị trí xuất phần tử x danh sách số nguyên Position locate (int X,List L) { for (int i=0;i=1 && (locate(x,*L)Last +1)){ Position p=locate(x,*L); deleteList(p,L); } } Hãy viết hàm tìm tập hơp hiệu tập hợp biểu diễn danh sách L1, L2 List difference(List L1,List L2,List* pL) { makenullList(pL); Position p=1; while (p!=L1.Last +1) { if (!member(L1.Elements[p-1],L2)){ insertSet(L1.Elements[p-1],pL); } p++; } return *pL; } Hãy viết hàm chèn phần tử X vào cuối danh sách trỏ pL biểu diễn tập hợp; void insertSet(ElementType x, List *L){ L->Elements[L->Last]=x; L->Last++; } Hãy viết hàm xếp danh sách void sort (List* L){ Position P=1; Position Q; int t; while(P!=L->Last +1){ Zetsu Q=P+1; while (Q!=L->Last+1){ if(L->Elements[P-1]>L->Elements[Q-1]){ t=L->Elements[P-1]; L->Elements[P-1]=L->Elements[Q-1]; L->Elements[Q-1]=t; } Q++; } P++; } } Viết hàm khởi tạo danh sách rỗng void makenullList (List* L){ L->Last=0; } Hãy viết khai báo cho kiểu liệu List (trong Maxlength=100) với thành phần mơ tả hình để danh sách đặc số nguyên #define Maxlength 100 typedef int ElementType; typedef int Position; typedef struct { ElementType Elements[Maxlength]; Position Last; } List; Hãy viết hàm nhập tập hợp từ bàn phím void readSet (List *L){ int i,n; ElementType x; makenullList (L); scanf("%d ",&n); for (i=1;i=0;i ){ if (L.Elements[i]==x) return i+1; } return L.Last+1; } Hãy viết hàm liệt kê tất phần tử danh sách số nguyên void printList (List L) { Position P; P=1; Zetsu while (P!=L.Last +1){ printf("%d ",L.Elements[P-1]); P++; } printf("\n"); } Hãy viết hàm tìm tập hơp giao tập hợp biểu diễn danh sách L1, L2 List intersection(List L1,List L2,List* pL) { makenullList(pL); Position p=1; while (p!=L1.Last +1) { if (member(L1.Elements[p-1],L2)){ insertSet(L1.Elements[p-1],pL); } p++; } return *pL; } Hãy viết hàm chuẩn hóa danh sách, tức phần tử danh sách trùng giữ lại phần tử, phần tử khác bị xóa bỏHãy viết hàm chuẩn hóa danh sách, tức phần tử danh sách trùng giữ lại phần tử, phần tử khác bị xóa bỏ void normalize (List *L){ Position P=1; Position Q; while (P!=L->Last +1){ Q=P+1; while (Q!=L->Last +1) if (L->Elements[P-1]==L->Elements[Q-1]) deleteList(Q,L); else Q++; P++; } Zetsu } Hãy viết hàm cho biết phần tử x có tồn danh sách số nguyên hay không int member (ElementType x,List L){ Position P=1; while (P!=L.Last+1){ if(L.Elements[P-1]==x) return 1; else P++; } return 0; } Hãy viết hàm tính trung bình cộng giá trị phần tử danh sách float getAvg(List L){ int S=0; Position P=1; if (L.Last!=0) { while (P!=L.Last +1){ S=S+L.Elements[P-1]; P++; } return (float) S/L.Last;} else return -10000; } Hãy viết hàm chép toàn số chẵn danh sách L1 sang danh sách kết void copyEvenNumbers(List L1,List *L2){ makenullList (L2); Position P=1; while (P!=L1.Last+1) { if (L1.Elements[P-1] %2 ==0) insertList(L1.Elements[P-1],L2->Last+1,L2); P++; } } Zetsu ... return *pL; } Hãy viết hàm chuẩn hóa danh sách, tức phần tử danh sách trùng giữ lại phần tử, phần tử khác bị xóa bỏHãy viết hàm chuẩn hóa danh sách, tức phần tử danh sách trùng giữ lại phần tử, phần... Viết hàm khởi tạo danh sách rỗng void makenullList (List* L){ L->Last=0; } Hãy viết khai báo cho kiểu liệu List (trong Maxlength=100) với thành phần mơ tả hình để danh sách đặc số nguyên #define... tử x danh sách số nguyên Position locate (int X,List L) { for (int i=0;i