v1.0 可编辑可修改 #include \struct list { int data; struct list *next; };
typedef struct list node; typedef node *link;
link delete_node(link pointer,link tmp) {if (tmp==NULL) /*delete first node*/ return pointer->next; else
{ if(tmp->next->next==NULL)/*delete last node*/ tmp->next=NULL;
else /*delete the other node*/ tmp->next=tmp->next->next; return pointer; } }
void selection_sort(link pointer,int num) { link tmp,btmp; int i,min; for(i=0;i tmp=pointer; min=tmp->data; btmp=NULL; while(tmp->next) { if(min>tmp->next->data) 4646 v1.0 可编辑可修改 {min=tmp->next->data; btmp=tmp; } tmp=tmp->next; } printf(\ pointer=delete_node(pointer,btmp); } } link create_list(int array[],int num) { link tmp1,tmp2,pointer; int i; pointer=(link)malloc(sizeof(node)); pointer->data=array[0]; tmp1=pointer; for(i=1;i { tmp2=(link)malloc(sizeof(node)); tmp2->next=NULL; tmp2->data=array[i]; tmp1->next=tmp2; tmp1=tmp1->next; } return pointer; } link concatenate(link pointer1,link pointer2) { link tmp; tmp=pointer1; while(tmp->next) 4747 v1.0 可编辑可修改 tmp=tmp->next; tmp->next=pointer2; return pointer1; } void main(void) { int arr1[]={3,12,8,9,11}; link ptr; ptr=create_list(arr1,5); selection_sort(ptr,5); } 实验二 栈和队列的应用 [实验目的]:掌握栈和队列的结构定义和特性; 掌握栈和队列的基本操作以及栈和队列在程序设计中的应用。 [实验题目]: 1、栈实现数制转换 #include #include #include typedef int SElemType; #include \ Status visit(SElemType * e) { printf(\ } void conversion() 4848 v1.0 可编辑可修改 { pSqStack S; SElemType e; int n; InitStack(&S); printf(\ scanf(\ if(n<0) { printf(\ return; } if(!n) Push(S,0); while(n){ Push(S,n%8); n=n/8; } printf(\ while(!StackEmpty(*S)){ Pop(S,&e); printf(\ } } main() { printf(\ conversion(); getch(); 4949 v1.0 可编辑可修改 printf(\ } 2、栈实现单行编辑 #include #include #include #include #define EOFILE '`' typedef char SElemType; #include \ Status visit(SElemType * e) { printf(\ } char OP[10]={'+','-','*','/','(',')','#'}; int precede[7][7]={ 1,1,2,2,2,1,1, 1,1,2,2,2,1,1, 1,1,1,1,2,1,1, 1,1,1,1,2,1,1, 2,2,2,2,2,3,0, 1,1,1,1,0,1,1, 2,2,2,2,2,0,3}; int In(char c,char *op) { int i=0; while(I<7) if(c==op[i++]) 5050