用结构数组表示链表,存储位置连续但各元素逻辑关系不连续 一般结构: struct slink { int data; int next; } 用起来好像不如动态链表方便。。。。。 静态链表的删除: #include"stdio.h" #include"stdlib.h" #define N 100 struct slink { int data; int next; }; void del_slinkelem(struct slink *head,int n) //在静态链表中删除第n个元素 { int i=head[0].next//i是遍历“指针” ,pre,count;//计数器; for(count=1;count<n;count++)//使i指向第n个元素,pre指向第n-1和元素 { pre=i; i=head[i].next; } head[pre].next=head[i].next;//第n-1个元素指向第n+1个元素 } 静态链表的查找: #include"stdio.h" #include"stdlib.h" #define N 100 struct slink { int data; int next; }; int search_sl(struct slink *head,int key) { int i=head[0].next;//i是遍历“指针” while(head[i].data!=key&&i!=0)//类比while(p->data!=key&&p!=NULL) i=head[i].next; return head[i].data; }