c语言线性表的插入,查找和删除以电话簿为例

来源:百度知道 编辑:UC知道 时间:2024/05/15 17:35:04
#include <stdio.h>
void main{
Typedef struct{int num;char name[20] } tel;
tel telephone[20];
Typedef struct {tel *elem;int length;int listsize }sqlist;
status Initlist_sq(sqlist &l);
GetElem (L,i,&e);
ListInsert (&L,i,e);
ListDelete (&L,i,&e);
}
Status Initlist_sq (sqlist &L){
for (i =0;i<=19;i++)
{ L.elem =(tel*) malloc (20*sizeof(tel));
L.elem[i] =telephone[i];
Scanf ("%d,%s" &telephone[i].num,&telephone[i].name);
if (!elem) exit (OVERFLOW);
L.Length = 20;
L.Listsize = 20;
}
for (i = 0;i<= 19; i++)
{printf ("%d,%s\n" elem[i].num, elem[i].name);}
}
Status GetElem (L,i,&e) {
L =sqlist L; int i; t;tel e;
scanf ("%d",t)
for (i=1;i<=L.Listlength;i++)
{if (t==i) e=L.elem[i];
return e;
}//GetEl

#include<fstream.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
#include<stdlib.h>
struct friend_node//结构体类型定义,包括:姓,名,电话号码
{
char last_name[20];
char first_name[20];
char phone_num[12];
friend_node * next;
};
friend_node *head_ptr;//全程变量,链头指针
friend_node *current_ptr;//全程变量,指明位置
void handle_choice(int choice);
void add_record();
void insert_node(friend_node *new_rec_ptr);
friend_node *position_insertion_point(char lastname[20]);
void make_node_new_head(friend_node *new_rec_ptr);
void add_node_to_end(friend_node *new_rec_ptr);
void move_current_to_end();
void display_list();
void delete_record();
void delete_head_of_list();
void delete_end_of_list(friend_node *previous_ptr);
void delete_from_middle_of_list(friend_node *previous_ptr);
int verify_delete();
void delete_node(fr