1.有序順序表的插入
阿新 • • 發佈:2019-02-03
#include <cstdlib> #include <iostream> using namespace std; //定義順序表的大小 #define MAX 100 //定義順序表接點 typedef struct Node{ int data[MAX]; int length; }Node; //查詢插入位置 int getLocation(Node node,int x){ int i; for(i=1;i<=node.length;i++){ if(node.data[i]>x) return i; } return i; } //插入新元素 void insert(Node &node,int x){ int location=getLocation(node,x); int i; for(i=node.length;i>=location;i--){ node.data[i+1]=node.data[i]; } node.data[location]=x; node.length++; } int main(int argc, char *argv[]) { //構造一個順序表接點 Node node; node.length=0; int i; for(i=1;i<=10;i++){ node.data[i]=i*i; node.length++; } //列印沒有插入前順序表的資料 for(i=1;i<=node.length;i++){ printf("--%d", node.data[i]); } //換行 putchar('\n'); insert(node,5); //列印沒有插入後順序表的資料 for(i=1;i<=node.length;i++){ printf("--%d", node.data[i]); } system("PAUSE"); return EXIT_SUCCESS; }