#include <iostream> using namespace std; #define MAXSIZE 100 /* 链表的数组实现 */ typedef struct { int listData[MAXSIZE]; int last; }List, *pList; pList CreateEmptyList() { pList pL; pL = new List; pL->last = -1; return pL; } int FindListElement(int X, pList pL) { int i = 0; while ( i <= pL->last && pL->listData[i] != X ) { i++; } if (i > pL->last) { return -1; //链表中找不到对应元素 } else { return i; } } void InsertListElement(int X, int position, pList pL) { int i; if ( pL->last == MAXSIZE - 1 ) { cout << "List Full!" << endl; return; } if ( position < 1 || position > pL->last + 2 ) //链表起始位置数组从1开始,last为当前数组下标从0开始(last = -1代表链表为空) //last + 2为在链表尾部添加一个元素(不影响链表中已经存在的元素) { cout << "Error Position!" << endl; return; } for ( i = pL->last; i >= position - 1; i++) //将元素插入位置position之前 { pL->listData[i + 1] = pL->listData[i]; } pL->listData[position - 1] = X; pL->last++; return; } void DeleteListElement(int position, pList pL) //position为第K个元素 { int i; if ( position < 1 || position > pL->last + 1 ) { cout << "Error Position!" << endl; return; } for ( i = position - 1; i < pL->last ; i++) { pL->listData[i] = pL->listData[i + 1]; } pL->last--; return; }