顺序表的实现

顺序表主要是以下几个操作:初始化操作,插入操作,删除操作

[cce_cpp]
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
#define Max 50
typedef struct
{
int num;
char name[20];
int score;
}Ele_Type;
typedef struct
{ Ele_Type elem[50];
int length;
}seqlist;

int ListIn(seqlist *L,int i,Ele_Type x)
/*在顺序表L中第i个元素之前插入元素x */
{ int k;
     if((i<1)||(i>Max+1))
{ printf("i值不合法\n");
         return ERROR;
}
     if(L->length>=Max)
{ printf("表已满无法插入\n");
          return ERROR;
}
for(k=L->length-1;k>=i-1;k--)
{   L->elem[k+1]=L->elem[k];
}
L->elem[i-1].num=x.num;
strcpy(L->elem[i-1].name,x.name);
L->elem[i-1].score=x.score;
L->length++;
return OK;
}

int ListDel(seqlist *L, int i)
/*在顺序表L中删除第i个元素*/
{int k;
if((i<1)||(i>Max))
{
printf("i值不合法\n");
     return ERROR;
}
    for (k=i;k<=L->length-1;k++)
{ L->elem[k-1]=L->elem[k];
}
L->length--;
return OK;
}

void main()
{
int i;
seqlist *L;
Ele_Type stu[50]={
   {2001,"Gao Jie",92},
   {2002,"Dong Yuming",88},
   {2003,"Zhao Bin",55},
   {2004,"Gao Haiming",75}};
Ele_Type x={2008,"Wang Xiao",61};
L=(seqlist*)malloc(sizeof(seqlist));
L->length=4;
for(i=0;i<L->length;i++)
{ L->elem[i]=stu[i];
}
ListIn(L,3,x);
printf("Inserted seqlist is:\n");
for(i=0;i<L->length;i++)
{
   printf("%6d %s %5d\n",L->elem[i].num,L->elem[i].name,
   L->elem[i].score);
}
ListDel(L,2);
printf("Deleted seqlist is:\n");
for(i=0;i<L->length;i++)
{ printf("%6d %s %5d\n",L->elem[i].num,L->elem[i].name,L->elem[i].score);
}
free(L);
}
[/cce_cpp]
实现的如下图
顺序表的实现
顺序表的实现

单链表的实现过程

单链表主要是以下几个操作:初始化操作,插入操作,删除操作

[cce_cpp]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<malloc.h>
#define ERROR 0
#define OK 1
#define NULL 0
#define LEN sizeof(struct linkednode)
typedef struct linkednode
{char data;
struct linkednode *next;
}Node,*Link_List;

Link_List create()
{
Link_List L;
Node *p1,*p2;
char data;
L=(Node*)malloc(LEN);
p2=L;
while((data=getchar())!='\n')
{
   p1=(Node*)malloc(LEN);
   p1->data=data;
   p2->next=p1;
   p2=p1;
}
p2->next=NULL;
return L;
}
void printf(Link_List L)
{
Node *p;
p=L->next;
while(p!=NULL)
{printf("%c",p->data);
p=p->next;
}
printf("\n");
}
int ListIn(Link_List L,int i,char x)
{
Node *p,*s;
int k;
p=L;
k=0;
while(p!=NULL&&k<i-1)
{
   p=p->next;
   k++;
}
if(p==NULL||k!=i-1)
{
   printf("插入位置不存在:\n");
   return ERROR;
}
s=(Node*)malloc(sizeof(Node));
s->data=x;
s->next=p->next;
p->next=s;
return OK;
}
int ListDel(Link_List L,int i)
{
Node *p,*r;
int k;
p=L;
k=0;
while(p->next!=NULL && k<i-1)
{
   p=p->next;
   k++;
}
if(p->next==NULL&& k!=i-1)
{
   printf("删除结点位置不合法:\n ");
   return ERROR;
}
r=p->next;
p->next=p->next->next;
free(r);
return OK;
}

main()
{
Link_List L=NULL;
char x;
int del_num,in_num;
system("CLS");
printf("请输入链表结点:\n");
L=create();
printf("请输入插入的结点值及插入位置:\n");
scanf("%c %d",&x,&in_num);
ListIn(L,in_num,x);
printf("插入后的链表:\n");
printf(L);
printf("请输入删除结点位置:\n");
scanf("%d",&del_num);
ListDel(L,del_num);
printf("删除后的链表为:\n");
printf(L);
}
[/cce_cpp]

完成的实现如下

单链表的实现
单链表的实现

关于IIS的服务World Wide Web Publishing Services无法启动的解决

昨天帮同学安装IIS,安装完成后 无法启动,在配置里面显示停止,去服务看了下是World Wide Web Publishing Services这个服务没有 开启,点开启,竟然提示没有找到程序,上网百度了一下,说打过补丁KB939373的就会出现这个问题。

解决:到控制面板-添加/删除程序,点击最上边的“显示更新”,找到“windows xp 软件更新”,卸载掉KB939373这个更新就 OK了 ,World Wide Web Publishing服务便能启动了。

额,微软就 喜欢做 这样的事