69,370
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
#define MAX 1000
#define null 0
typedef int datatype;
typedef struct selist {
int data[MAX];
int last;
} sequenlist;
sequenlist *l;
int insert_listseq(sequenlist *l, int x, int i) {
int j;
if((*l).last > MAX) {
printf("\n\t溢出错误!\n");
return (null);
} else if((i<1) || (i>(*l).last+1)) {
printf("\n\t该位置不存在!\n");
return (null);
} else {
for(j=(*l).last-1; j>=i-1; j--) {
(*l).data[j+1] = (*l).data[j];
}
(*l).data[i-1] = x;
(*l).last = (*l).last+1;
return 1;
}
}
int delete_address(sequenlist *l, int i) {
int j;
if((i<1) || (i>(*l).last+1)) {
printf("\n\t位置错误\n");
return (null);
} else {
for(j=i-1; j<(*l).last; j++) {
(*l).data[j] = (*l).data[j+1];
}
(*l).last --;
return(1);
}
}
int delete_data(sequenlist *l, int x) {
int i=0, j, len;
len = (*l).last;
while(((*l).data[i] != x) && (i<len)) {
i++;
}
if(x == (*l).data[i]) {
for(j=i; j<len; j++) {
(*l).data[i] = (*l).data[i+1];
}
(*l).last--;
return(1);
} else {
printf("该节点不存在!");
return (null);
}
}
int search_listseq(sequenlist *l, int key) {
int i=0;
datatype x = (*l).data[i];
while((x != key) &&(i < (*l).last)) {
i ++;
x = (*l).data[i];
}
if(x == key) return(i+1);
else return (null);
}
void print_listseq(sequenlist *l) {
int i, n=(*l).last;
for(i=0; i<n; i++) {
printf("\tdata[%2d]=%4d", i, (*l).data[i]);
if((i+1)%4 == 0) printf("\n");
}
}
void main() {
//memset((*l).data, 0, MAX);
//(*l).last = 0;
int i = 0, j=0;
for(j=0; j<MAX; j++) {
(*l).data[j] = 0;
}
(*l).last = 0;
for(i=0; i<10; i++) {
insert_listseq(l, i+1, i+1);
}
print_listseq(l);
}
#include<stdio.h>
#include<string.h>
#define MAX 1000
#define null 0
typedef int datatype;
typedef struct selist {
int data[MAX];
int last;
} sequenlist;
sequenlist sl; //mark
sequenlist *l=&sl;//mark
int insert_listseq(sequenlist *l, int x, int i) {
int j;
if((*l).last > MAX) {
printf("\n\t溢出错误!\n");
return (null);
} else if((i<1) || (i>(*l).last+1)) {
printf("\n\t该位置不存在!\n");
return (null);
} else {
for(j=(*l).last-1; j>=i-1; j--) {
(*l).data[j+1] = (*l).data[j];
}
(*l).data[i-1] = x;
(*l).last = (*l).last+1;
return 1;
}
}
int delete_address(sequenlist *l, int i) {
int j;
if((i<1) || (i>(*l).last+1)) {
printf("\n\t位置错误\n");
return (null);
} else {
for(j=i-1; j<(*l).last; j++) {
(*l).data[j] = (*l).data[j+1];
}
(*l).last --;
return(1);
}
}
int delete_data(sequenlist *l, int x) {
int i=0, j, len;
len = (*l).last;
while(((*l).data[i] != x) && (i<len)) {
i++;
}
if(x == (*l).data[i]) {
for(j=i; j<len; j++) {
(*l).data[i] = (*l).data[i+1];
}
(*l).last--;
return(1);
} else {
printf("该节点不存在!");
return (null);
}
}
int search_listseq(sequenlist *l, int key) {
int i=0;
datatype x = (*l).data[i];
while((x != key) &&(i < (*l).last)) {
i ++;
x = (*l).data[i];
}
if(x == key) return(i+1);
else return (null);
}
void print_listseq(sequenlist *l) {
int i, n=(*l).last;
for(i=0; i<n; i++) {
printf("\tdata[%2d]=%4d", i, (*l).data[i]);
if((i+1)%4 == 0) printf("\n");
}
}
void main() {
//memset((*l).data, 0, MAX);
//(*l).last = 0;
int i = 0, j=0;
for(j=0; j<MAX; j++) {
(*l).data[j] = 0;
}
(*l).last = 0;
for(i=0; i<10; i++) {
insert_listseq(l, i+1, i+1);
}
print_listseq(l);
}