⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 11_16.cpp

📁 C程序参考,简单易懂,是初学者不可少的参考资料
💻 CPP
字号:
#include "stdio.h"
#include "string.h"
#include "malloc.h"
typedef struct person
{
  char           name[31];
  int            age;
  char           address[101];
  struct person *next;
} Person;
Person *createLink();
void insertANode(Person **LinkHead, Person *pt);
void printLink(Person *pt);
void distroyLink(Person *LinkHead);

int main(void){
  Person* LinkHead;
  LinkHead=createLink();
  printLink(LinkHead);
  distroyLink(LinkHead);
  return 0;
}
Person *createLink(){
  Person *LinkHead = NULL, *pt;
  int count;
  int i;
  printf("input count:");
  scanf("%d", &count);  
  printf("input name age address:\n");
  for(i=0; i<count; i++) {
    pt= (Person *)malloc(sizeof(Person));
    scanf("%s %d %s", pt->name, &pt->age, pt->address);
insertANode(&LinkHead, pt);
  }
  return LinkHead;
}
void insertANode(Person **LinkHead, Person *pt) {
  Person *p1, *p2;
  if(NULL == *LinkHead) {
    *LinkHead = pt;
    pt->next = NULL;
  }
  else {
	    p1 = *LinkHead;
while(NULL != p1 && strcmp(pt->name, p1->name) > 0) {
      p2= p1;
	      p1= p1->next;
	    }
if(p1 == *LinkHead) {
	      *LinkHead = pt;
	      pt->next  = p1;
	    }
    else if(NULL == p1) {
	      p2->next = pt;
	      pt->next = NULL;
	    }
	   else {
	     p2->next = pt;
	     pt->next = p1;
	   }
 }
 return;
}
void printLink(Person *pt)
{
  while(NULL!=pt) {
    printf("%-30s, %4d, %s\n", pt->name, pt->age, pt->address);
    pt = pt->next;
  }
}
void distroyLink(Person *LinkHead)
{
  Person *pt;
  int    i=0;
  pt=LinkHead;
  while(NULL != pt) {
    LinkHead = LinkHead->next;
    free(pt);
printf("free node:%d\n", i++);
pt =LinkHead;
  }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -